NewMe Hertz Technical reference Referencia técnica

1. Abstract

1. Resumen

This is a technical due diligence record for NewMe Hertz. The original line-by-line audit was taken at branch main, single commit 4dedd92, on 2026-08-07, with an evidence dossier of 142 references. Status, counts and milestone claims were refreshed on 2026-08-20 against HEAD (then 5dc08bc), PROJECT_STATUS.md and CHANGELOG.md 0.4.0 (8) / 0.4.1 (9). Scientific citations in section 15 were not re-verified in the refresh. Every new quantity below is either counted from the tree or quoted from a signed gate.

Este es un expediente de diligencia debida técnica sobre NewMe Hertz. La auditoría línea por línea original se tomó en la rama main, commit único 4dedd92, el 2026-08-07, con un expediente de 142 referencias. Estado, recuentos y afirmaciones de hitos se refrescaron el 2026-08-20 contra HEAD (entonces 5dc08bc), PROJECT_STATUS.md y CHANGELOG.md 0.4.0 (8) / 0.4.1 (9). Las citas científicas de la sección 15 no se volvieron a verificar en el refresco. Cada cantidad nueva de abajo se contó en el árbol o se citó de una compuerta firmada.

1.1 What the product is

1.1 Qué es el producto

NewMe Hertz is a two app Apple wellness product, an iPhone app plus an Apple Watch companion, that fuses on device physiological, motion, voice, facial and context signals into a continuously updated, confidence scored estimate of the user's emotional state across six continuous dimensions and a catalog of 17 emotions. Around that estimate it ships a Breathing Studio, a symbolic frequency system, neuroacoustic journeys (M4), a non-diagnostic wellness trend layer (M7) and a vetoable four-parameter personal correction (M6).

NewMe Hertz es un producto de bienestar de Apple con dos aplicaciones, una para iPhone y una app complementaria para Apple Watch, que fusiona en el propio dispositivo señales fisiológicas, de movimiento, de voz, faciales y de contexto para producir una estimación continua y con nivel de confianza del estado emocional del usuario, sobre seis dimensiones continuas y un catálogo de 17 emociones. Alrededor de esa estimación entrega un Estudio de Respiración, un sistema simbólico de frecuencias, viajes neuroacústicos (M4), una capa de tendencias de bienestar no diagnóstica (M7) y una corrección personal de cuatro parámetros, vetable (M6).

Sensing, inference, personalisation and storage all run on the user's own devices. There is no server, no account, no analytics and no third party code in the binary. That claim is checkable rather than asserted, and section 2.3 shows exactly how it was checked.

La captación, la inferencia, la personalización y el almacenamiento se ejecutan íntegramente en los dispositivos del usuario. No hay servidor, no hay cuenta, no hay analítica y no hay código de terceros en el binario. Esa afirmación es comprobable y no meramente declarada, y la sección 2.3 muestra exactamente cómo se comprobó.

1.2 The three things this document does not claim

1.2 Las tres cosas que este documento no afirma

One. The product does not measure emotion. Physiological inputs are measured: heart rate, heart rate variability, respiratory rate. Emotional states are estimated, always with a confidence value, never as a diagnosis. The distinction is enforced across the codebase and across the shipped copy, and it is the framing rule that governs every sentence below.

Uno. El producto no mide la emoción. Las entradas fisiológicas sí se miden: frecuencia cardíaca, variabilidad de la frecuencia cardíaca (VFC), frecuencia respiratoria. Los estados emocionales se estiman, siempre con un valor de confianza y nunca como diagnóstico. La distinción está aplicada en todo el código y en todos los textos publicados, y es la regla de encuadre que gobierna cada frase de este documento.

Two. The product does not claim scientific support for its symbolic layer. Hawkins consciousness levels and Solfeggio frequencies have no empirical basis whatsoever, a finding this document states in full in section 11 with primary source evidence. The app already says so on every surface that displays a Hz value or a level.

Dos. El producto no reclama respaldo científico para su capa simbólica. Los niveles de conciencia de Hawkins y las frecuencias Solfeggio carecen por completo de base empírica, un hallazgo que este documento expone en detalle en la sección 11 con evidencia de fuente primaria. La aplicación ya lo declara en todas las superficies que muestran un valor en Hz o un nivel.

Three. The product does not claim validated clinical accuracy. A WESAD-trained CoreML model ships on iPhone as experimental, behind a confidence gate, with the heuristic as fallback. Wrist-only F1 was measured at 65.13 versus 66.33 published with an EDA channel the Watch does not have. Personal correction is safe and not useful on K-EmoCon. No behaviour has been validated on physical hardware. That remaining gate is M5.

Tres. El producto no reclama exactitud clínica validada. Un modelo CoreML entrenado con WESAD se publica en iPhone como experimental, tras una compuerta de confianza, con la heurística como respaldo. El F1 solo con muñeca se midió en 65,13 frente a 66,33 publicado con un canal de EDA que el Watch no tiene. La corrección personal es segura y no útil en K-EmoCon. No se ha validado ningún comportamiento en hardware físico. Esa puerta que queda es M5.

1.3 How to read this document

1.3 Cómo leer este documento

The audience is bimodal, so the document is too. Each major section opens with a lead paragraph that states in plain language what the thing is and why it matters commercially. Below that lead sits the technical detail, with real type names, real constants and real file paths. A non engineer reading only the lead paragraphs should come away with the correct shape of the system. An engineer reading only the detail should find nothing hand waved.

La audiencia es bimodal, y el documento también. Cada sección principal abre con un párrafo guía que explica en lenguaje llano qué es la pieza y por qué importa comercialmente. Debajo de ese párrafo está el detalle técnico, con nombres de tipos reales, constantes reales y rutas de archivo reales. Quien no sea ingeniero y lea solo los párrafos guía debería quedarse con la forma correcta del sistema. Un ingeniero que lea solo el detalle no debería encontrar nada vago.

Section 14 is a list of every known discrepancy, defect and citation error found during the audit. It is deliberately included and deliberately complete. A due diligence document that has such a section is more credible than one that does not, and every item in it is small, findable and fixable.

La sección 14 es una lista de todas las discrepancias, defectos y errores de citación conocidos hallados durante la auditoría. Se incluye de forma deliberada y deliberadamente completa. Un documento de diligencia debida que tiene esa sección es más creíble que uno que no la tiene, y cada ítem de la lista es pequeño, localizable y corregible.

Vocabulary discipline used throughout: estimate, never measure, for emotional state; symbolic and experimental, never scientific, for Hawkins levels and Solfeggio frequencies; wellness, never clinical, for the product category.

Disciplina de vocabulario aplicada en todo el texto: estimación, nunca medición, para el estado emocional; simbólico y experimental, nunca científico, para los niveles Hawkins y las frecuencias Solfeggio; bienestar, nunca clínico, para la categoría de producto.

2. System overview and the two app topology

2. Visión general del sistema y topología de dos aplicaciones

The product is one Xcode project with four targets and, crucially, one implementation of the interesting code running on two platforms rather than two ports of it. The inference engine, the catalogs, the persistence stores, the audio engine and the breathing engine are compiled into both the watch app and the iPhone app from the same folders. That is why the feature surface is as large as it is for a codebase of this size, and it is why a change to the estimator lands on both devices at once.

El producto es un único proyecto de Xcode con cuatro targets y, sobre todo, una sola implementación del código interesante ejecutándose en dos plataformas, no dos versiones portadas. El motor de inferencia, los catálogos, los almacenes de persistencia, el motor de audio y el motor de respiración se compilan en la app del reloj y en la del iPhone desde las mismas carpetas. Por eso la superficie funcional es tan amplia para una base de código de este tamaño, y por eso un cambio en el estimador llega a los dos dispositivos a la vez.

2.1 The four targets

2.1 Los cuatro targets

Targets declared in project.yml:8-203. Measured from the tree at commit 4dedd92.Targets declarados en project.yml:8-203. Medido sobre el árbol en el commit 4dedd92.
TargetTarget PlatformPlataforma Deployment targetVersión mínima RolePapel
NewMeHertzWatch watchOS 10.0 The watch app, and also the home of the shared code. Domain/, Services/, Resources/ and four view models compile into both apps.La app del reloj y, además, el hogar del código compartido. Domain/, Services/, Resources/ y cuatro view models se compilan en ambas apps.
NewMeHertziOS iOS 26.0 The iPhone app. Compiles its own UI layer on top of the watch folder's domain and services (project.yml:100-110), and embeds the watch app (:114-115).La app del iPhone. Compila su propia capa de interfaz sobre el dominio y los servicios de la carpeta del reloj (project.yml:100-110) e incrusta la app del reloj (:114-115).
NewMeHertzWatchTests watchOS not applicableno aplica Watch test target. Sources are Tests/. 2,356 func test declarations as of 2026-08-20.Target de pruebas del reloj. Sus fuentes son Tests/. 2.356 declaraciones func test al 2026-08-20.
NewMeHertziOSTests iOS not applicableno aplica iOS test target, closed as M1-C. Sources are TestsiOS/. 364 func test declarations as of 2026-08-20.Target de pruebas de iOS, cerrado como M1-C. Sus fuentes son TestsiOS/. 364 declaraciones func test al 2026-08-20.

The sharing arrangement is deliberate. The watch target owns EmotionFrequencyWatch/Domain, 50 files and 11,356 lines, and EmotionFrequencyWatch/Services, 38 files and 10,887 lines. The iOS target compiles those same folders (project.yml:102-104). The watch @main, its RootView and the watchOS only views are explicitly excluded (:97-99).

El reparto es deliberado. El target del reloj es dueño de EmotionFrequencyWatch/Domain, 50 archivos y 11.356 líneas, y de EmotionFrequencyWatch/Services, 38 archivos y 10.887 líneas. El target de iOS compila esas mismas carpetas (project.yml:102-104). El @main del reloj, su RootView y las vistas exclusivas de watchOS quedan excluidos explícitamente (:97-99).

The watch app was WKWatchOnly until WatchConnectivity required a companion relationship (project.yml:74-76). It is now embedded in the iOS app with WKCompanionAppBundleIdentifier set to com.juampa.newmehertz.EmotionFrequencyiOS and WKRunsIndependentlyOfCompanionApp: YES (:77-78). The watch app therefore still works standalone, without the phone. The watch bundle identifier had to be re prefixed to com.juampa.newmehertz.EmotionFrequencyiOS.watchkitapp because the system requires it (:80-85).

La app del reloj era WKWatchOnly hasta que WatchConnectivity exigió una relación de app complementaria (project.yml:74-76). Hoy va incrustada en la app de iOS con WKCompanionAppBundleIdentifier igual a com.juampa.newmehertz.EmotionFrequencyiOS y WKRunsIndependentlyOfCompanionApp: YES (:77-78). Por tanto la app del reloj sigue funcionando de forma autónoma, sin el teléfono. El identificador de bundle del reloj tuvo que reprefijarse a com.juampa.newmehertz.EmotionFrequencyiOS.watchkitapp porque el sistema lo exige (:80-85).

2.2 What runs where

2.2 Qué se ejecuta dónde

Platform specific capabilities, from the service files named in each row.Capacidades específicas de cada plataforma, según los archivos de servicio nombrados en cada fila.
DeviceDispositivo CapabilityCapacidad ImplementationImplementación
iPhone onlySolo iPhone Voice prosody check inRegistro de prosodia de voz EmotionFrequencyiOS/Services/Voice/VoiceProsodyService.swift
iPhone onlySolo iPhone Facial blendshape check in, via ARKitRegistro de expresión facial, vía ARKit EmotionFrequencyiOS/Services/Face/FaceExpressionService.swift
iPhone onlySolo iPhone Calendar densityDensidad de agenda Services/Context/CalendarContextService.swift
iPhone onlySolo iPhone Place categoryCategoría de lugar Services/Context/LocationContextService.swift
iPhone onlySolo iPhone Activity classificationClasificación de actividad Services/Motion/ActivityClassificationService.swift
iPhone onlySolo iPhone Local notifications. watchOS receives a null scheduler.Notificaciones locales. watchOS recibe un planificador nulo. BreathNotificationService.swift:226-321
Watch onlySolo reloj Continuous live heart rate via HKWorkoutSession. Requires the workout share permission even though the workout is discarded.Frecuencia cardíaca continua en vivo vía HKWorkoutSession. Exige el permiso de escritura de entrenamientos aunque el entrenamiento se descarte. Services/Health/WorkoutLiveHeartRateService.swift
Watch onlySolo reloj Wrist worn inertial measurement during a sessionMedición inercial en la muñeca durante una sesión Services/Sensors/MotionFeatureService.swift
Watch onlySolo reloj WKExtendedRuntimeSession keep aliveMantenimiento con WKExtendedRuntimeSession Services/Session/ExtendedRuntimeService.swift
BothAmbos The full inference pipeline. Both devices run MoodSessionCoordinator in parallel with their own features, their own baseline and their own smoothing state, and a role election decides which reading is painted.El pipeline completo de inferencia. Ambos dispositivos ejecutan MoodSessionCoordinator en paralelo con sus propias señales, su propia línea base y su propio estado de suavizado, y una elección de rol decide qué lectura se pinta. Services/MoodEstimation/MoodSessionCoordinator.swift

2.3 The zero backend claim, and how it was verified

2.3 La afirmación de cero backend, y cómo se verificó

The entire Swift tree, meaning EmotionFrequencyiOS, EmotionFrequencyWatch, SharedUI and Tests, was searched for URLSession, URLRequest, NSURLConnection, CFNetwork, WKWebView, import Network, NWConnection and WebSocket usage; for the common analytics and crash SDKs Firebase, Crashlytics, Sentry, Mixpanel, Amplitude, AppsFlyer, Bugsnag, Datadog, PostHog and TelemetryDeck; for AppTrackingTransparency, ATTrackingManager, advertisingIdentifier and ASIdentifierManager; for CloudKit, CKContainer, NSUbiquitous and NSPersistentCloudKit; and for MetricKit. The result is zero matches. Not few. Zero.

Se buscó en todo el árbol Swift, es decir EmotionFrequencyiOS, EmotionFrequencyWatch, SharedUI y Tests, la presencia de URLSession, URLRequest, NSURLConnection, CFNetwork, WKWebView, import Network, NWConnection y uso de WebSocket; de los SDK habituales de analítica y crashes Firebase, Crashlytics, Sentry, Mixpanel, Amplitude, AppsFlyer, Bugsnag, Datadog, PostHog y TelemetryDeck; de AppTrackingTransparency, ATTrackingManager, advertisingIdentifier y ASIdentifierManager; de CloudKit, CKContainer, NSUbiquitous y NSPersistentCloudKit; y de MetricKit. El resultado es cero coincidencias. No pocas. Cero.

The complete import inventory across the source trees, counted by occurrence, is nineteen frameworks, all first party Apple, none of them a networking framework:

El inventario completo de imports en los árboles de código, contado por apariciones, son diecinueve frameworks, todos de Apple y ninguno de red:

109 Foundation   100 SwiftUI     14 UIKit      10 Observation   9 os
  5 CoreGraphics   5 AVFoundation  4 WatchKit    4 HealthKit    2 CoreMotion
  1 WatchConnectivity  1 UserNotifications  1 MusicKit  1 EventKit
  1 CoreLocation      1 CoreHaptics        1 Charts    1 ARKit

There is no third party code in the binary. project.yml declares no Swift Package Manager packages; the only dependencies: entries are the intra project target link (project.yml:114-115 and :196-197). There is no Package.swift, no Podfile and no Cartfile. XcodeGen itself is a development only tool installed through Homebrew and is not linked into the app.

No hay código de terceros en el binario. project.yml no declara paquetes de Swift Package Manager; las únicas entradas de dependencies: son el enlace entre targets del propio proyecto (project.yml:114-115 y :196-197). No hay Package.swift, ni Podfile, ni Cartfile. XcodeGen es una herramienta de desarrollo instalada con Homebrew y no se enlaza en la app.

Spotify is deliberately excluded for exactly this reason. The Spotify iOS SDK is a third party binary and its Web API cannot play audio anyway, so the integration is reduced to an openURL("spotify://") button plus an LSApplicationQueriesSchemes entry (project.yml:136). The only http URL in the entire Swift tree is a non fetched App Store deep link in SpotifyCompanion.swift:32, plus an https://example.com test fixture in Tests/BreathingReferencesTests.swift:106 and UIApplication.openSettingsURLString in PrivacyDashboardView.swift:341.

Spotify se excluye deliberadamente por esta misma razón. El SDK de Spotify para iOS es un binario de terceros y su Web API no puede reproducir audio de todos modos, así que la integración se reduce a un botón openURL("spotify://") más una entrada LSApplicationQueriesSchemes (project.yml:136). La única URL http de todo el árbol Swift es un enlace profundo a la App Store que nunca se descarga, en SpotifyCompanion.swift:32, más un fixture de prueba https://example.com en Tests/BreathingReferencesTests.swift:106 y UIApplication.openSettingsURLString en PrivacyDashboardView.swift:341.

The entitlements corroborate the claim. Both Support/EmotionFrequencyiOS.entitlements and Support/EmotionFrequencyWatch.entitlements contain exactly one key, com.apple.developer.healthkit = true. No push, no App Groups, no iCloud, no associated domains. The com.apple.developer.musickit entitlement was removed on 2026-07-31 because the team's App ID lacks it (project.yml:164-173), which is why the in app Apple Music picker hides itself while mix with music still works.

Los entitlements corroboran la afirmación. Tanto Support/EmotionFrequencyiOS.entitlements como Support/EmotionFrequencyWatch.entitlements contienen exactamente una clave, com.apple.developer.healthkit = true. Sin push, sin App Groups, sin iCloud, sin dominios asociados. El entitlement com.apple.developer.musickit se eliminó el 2026-07-31 porque el App ID del equipo no lo tiene (project.yml:164-173), y por eso el selector de Apple Music dentro de la app se oculta mientras la mezcla con música sigue funcionando.

Two honest caveats that must not be omitted. First, local os.Logger output is the only telemetry, and it is local: two subsystems, both com.juampa.newmehertz, category connectivity (WatchConnectivitySyncService.swift:10) and category health (HealthMetricsService.swift:105). Nothing is uploaded. However, HealthMetricsService.swift:311-318 logs heart rate, resting heart rate and SDNN values with privacy: .public, which makes them readable through log stream from a connected Mac. That is the one place raw health numbers leave app memory into a system facility. Second, there is no PrivacyInfo.xcprivacy privacy manifest in the repository. With zero third party SDKs and no tracking the required reason declarations would be short, UserDefaults being the one required reason API family in use, but it is an App Store submission gap today.

Dos salvedades honestas que no deben omitirse. Primera, la salida local de os.Logger es la única telemetría y es local: dos subsistemas, ambos com.juampa.newmehertz, categoría connectivity (WatchConnectivitySyncService.swift:10) y categoría health (HealthMetricsService.swift:105). Nada se sube. Sin embargo, HealthMetricsService.swift:311-318 registra los valores de frecuencia cardíaca, frecuencia cardíaca en reposo y SDNN con privacy: .public, lo que los hace legibles mediante log stream desde un Mac conectado. Ese es el único lugar donde números de salud en bruto salen de la memoria de la app hacia un servicio del sistema. Segunda, no existe manifiesto de privacidad PrivacyInfo.xcprivacy en el repositorio. Sin SDK de terceros y sin rastreo las declaraciones de motivo requerido serían breves, siendo UserDefaults la única familia de API de motivo requerido en uso, pero hoy es un hueco para la presentación a la App Store.

2.4 Platform reality exclusions: what the team documents it cannot do

2.4 Exclusiones por realidad de plataforma: lo que el equipo documenta que no puede hacer

This table is an asset in due diligence, not a liability. A team that enumerates its impossibilities is a team that has actually read the platform documentation.

Esta tabla es un activo en diligencia debida, no un pasivo. Un equipo que enumera sus imposibilidades es un equipo que realmente ha leído la documentación de la plataforma.

Six documented exclusions, from EMOTION_ENGINE_V2_SPEC.md:34-43.Seis exclusiones documentadas, de EMOTION_ENGINE_V2_SPEC.md:34-43.
Excluded capabilityCapacidad excluida Why it is impossible with public Apple APIsPor qué es imposible con API públicas de Apple What ships insteadQué se envía en su lugar
Cross app Screen Time and app usageTiempo de uso entre apps DeviceActivity and FamilyControls data is sandboxed to extensions and cannot reach app code.Los datos de DeviceActivity y FamilyControls viven aislados en extensiones y no pueden llegar al código de la app. In app interaction metrics only, via InteractionMetricsRecorder.Solo métricas de interacción dentro de la app, vía InteractionMetricsRecorder.
System wide typing dynamicsDinámica de tecleo en todo el sistema Requires a custom keyboard extension, which is out of scope and poor privacy optics.Exigiría una extensión de teclado propia, fuera de alcance y de mala óptica de privacidad. In app typing rhythm only.Solo ritmo de tecleo dentro de la app.
Ambient light sensorSensor de luz ambiente No public API exists.No existe API pública. Excluded outright.Excluido por completo.
Raw beat to beat RR intervalsIntervalos RR latido a latido en bruto HealthKit exposes SDNN and, on watchOS 11 and later, heartbeat series with gaps. ECG derived features require explicit user action in Apple's ECG app.HealthKit expone SDNN y, en watchOS 11 en adelante, series de latidos con huecos. Las medidas derivadas de ECG exigen una acción explícita del usuario en la app de ECG de Apple. RMSSD stays a low confidence proxy, hard capped at 0.4 quality (LivePhysioWindow.swift:30-31), never presented as clinical.RMSSD sigue siendo un proxy de baja confianza, con tope duro de 0,4 de calidad (LivePhysioWindow.swift:30-31), nunca presentado como clínico.
Electrodermal activityActividad electrodérmica There is no such sensor on Apple Watch. The consequence is that the WESAD dataset's EDA channel must be dropped from the planned M3 model inputs.No existe ese sensor en el Apple Watch. La consecuencia es que el canal EDA del conjunto de datos WESAD debe descartarse de las entradas del modelo M3 planificado. Excluded, and documented in the machine learning plan.Excluido, y documentado en el plan de aprendizaje automático.
Blood oxygenOxígeno en sangre Readable only when the user's watch happens to record it.Solo legible cuando el reloj del usuario lo ha registrado. Low frequency context only.Solo contexto de baja frecuencia.

The RMSSD honesty rule deserves a callout. The code does not merely label the proxy, it caps its influence structurally, and MoodStateViewModel.hrvDisplay (EmotionFrequencyiOS/Features/Estado/MoodStateViewModel.swift:489-503) prefers SDNN and only falls back to the pseudo RMSSD with an isEstimated flag and a literal tilde prefix in the displayed number.

La regla de honestidad sobre RMSSD merece mención aparte. El código no se limita a etiquetar el proxy: acota su influencia de forma estructural, y MoodStateViewModel.hrvDisplay (EmotionFrequencyiOS/Features/Estado/MoodStateViewModel.swift:489-503) prefiere SDNN y solo recurre al pseudo RMSSD con una bandera isEstimated y un prefijo literal de virgulilla en el número mostrado.

3. The inference pipeline, L1 to L15

3. El pipeline de inferencia, de L1 a L15

The v2.0 architecture defines fifteen layers. Eight of them are shipped, five are partial, two are planned. What follows is, per layer, what it does, the concrete Swift types that implement it, and an honest status with a milestone attached where the work is not done. The important structural fact is that the layers that carry the product's honesty, signal quality weighting, confounder detection, personal baselining, explainability and privacy, are all shipped. The layers that are missing are the ones that add depth: temporal memory, a third affect axis, a trained model and clinical trends.

La arquitectura v2.0 define quince capas. Ocho están entregadas, cinco son parciales y dos están planificadas. Lo que sigue detalla, por capa, qué hace, qué tipos concretos de Swift la implementan y un estado honesto con el hito asociado cuando el trabajo no está hecho. El hecho estructural relevante es que las capas que sostienen la honestidad del producto, ponderación por calidad de señal, detección de factores de confusión, línea base personal, explicabilidad y privacidad, están todas entregadas. Las que faltan son las que añaden profundidad: memoria temporal, un tercer eje afectivo, un modelo entrenado y tendencias clínicas.

Global status, stated up front. The original 2026-08-07 audit found M1 absent. As of 2026-08-20 that is no longer true: M1, M2, M3, M4, M6 and M7 are signed and in the tree. M5, physical-device validation, remains open. The v1 heuristic still ships; a gated CoreML path ships on iPhone as experimental.

Estado global, declarado por adelantado. La auditoría original del 2026-08-07 halló M1 ausente. Al 2026-08-20 eso ya no es cierto: M1, M2, M3, M4, M6 y M7 están firmados y en el árbol. M5, validación en dispositivo físico, sigue abierto. La heurística v1 sigue publicada; una ruta CoreML con compuerta se publica en iPhone como experimental.

The fifteen layers of the v2.0 architecture, with measured status. Sources: EMOTION_ENGINE_V2_SPEC.md section 1, cross checked against the tree.Las quince capas de la arquitectura v2.0, con estado medido. Fuentes: EMOTION_ENGINE_V2_SPEC.md sección 1, contrastado con el árbol de código.
LayerCapa What it doesQué hace Principal typesTipos principales StatusEstado
L1 Sensor acquisitionL1 Adquisición de sensores Collects raw platform data and turns it into derived feature windows. Never persists raw samples.Recoge datos brutos de la plataforma y los convierte en ventanas de características derivadas. Nunca persiste muestras crudas. HealthMetricsService, ExtendedHealthMetricsService, SessionLivePhysioService, MotionFeatureService, InteractionMetricsRecorder SHIPPED session scoped. Passive collection is M2.de ámbito de sesión. La recogida pasiva es M2.
L2 Signal quality engineL2 Motor de calidad de señal Every feature carries a quality from 0 to 1 and a freshness class computed at use time. Composite weight is quality times freshness times confounder factor.Cada señal lleva una calidad de 0 a 1 y una clase de frescura calculada en el momento de uso. El peso compuesto es calidad por frescura por factor de confusión. SensorFeature, SignalFreshnessClass SHIPPED weighting. Per source SQI surfacing is M2.la ponderación. El SQI por fuente en la interfaz es M2.
L3 Feature extractionL3 Extracción de características Voice, face, motion, context and health derived features. No speech to text, ever.Características de voz, rostro, movimiento, contexto y salud. Jamás conversión de voz a texto. ProsodyFeatureExtractor, FaceExpressionAggregator, MotionFeatureExtractor, ContextFeatureMath, LivePhysioWindow PARTIAL MFCC, spectral centroid and flux, jitter and shimmer are M3.MFCC, centroide y flujo espectral, jitter y shimmer son M3.
L4 Physiological state modelL4 Modelo de estado fisiológico Produces the six continuous dimensions plus the provenance of the valence number.Produce las seis dimensiones continuas más la procedencia del valor de valencia. MoodDimensions, DimensionEstimates, ValenceEvidence SHIPPED fatigue, autonomic balance and circadian alignment included (M2).incluye fatiga, balance autonómico y alineación circadiana (M2).
L5 Behavioral contextL5 Contexto conductual Sleep debt, activity, calendar density and in app interaction metrics.Deuda de sueño, actividad, densidad de agenda y métricas de interacción dentro de la app. ContextFeatureMath, InteractionMetricsRecorder PARTIAL bounded by platform. Cross app screen time and system typing are impossible.limitado por la plataforma. El tiempo de uso entre apps y el tecleo del sistema son imposibles.
L6 Context awareness, confoundersL6 Conciencia de contexto, confusores Five rules that discount signals whose value has a non emotional explanation. Factors multiply.Cinco reglas que descuentan señales cuyo valor tiene una explicación no emocional. Los factores se multiplican. ConfounderDetector, ConfounderFlag SHIPPED
L7 Personalized baselineL7 Línea base personalizada Per feature ring of daily medians plus a slow EWMA, eight time and day type buckets, winsorised ingestion, explicit maturity.Anillo de medianas diarias por señal más una EWMA lenta, ocho cubos de franja horaria y tipo de día, ingesta winsorizada y madurez explícita. PersonalBaseline, FeatureBaseline, BaselineBucketKey SHIPPED 90 day ring, 7/30/90 windows (M1-D).anillo de 90 días, ventanas 7/30/90 (M1-D).
L8 Multimodal fusionL8 Fusión multimodal Turns the dimensions into a probability distribution over the 17 catalog emotions, widening as data quality falls.Convierte las dimensiones en una distribución de probabilidad sobre las 17 emociones del catálogo, ensanchándose cuando cae la calidad del dato. HeuristicMoodInferenceModel, EmotionAffectPrototypes SHIPPED heuristic plus gated CoreML (experimental).heurística más CoreML con compuerta (experimental).
L9 Temporal memoryL9 Memoria temporal Multi horizon embedding rollups at 30 s, 5 min, 1 h, 4 h, 24 h and 7 d, plus trend features, stored as embeddings only.Agregados de embeddings a múltiples horizontes de 30 s, 5 min, 1 h, 4 h, 24 h y 7 d, más características de tendencia, almacenados solo como embeddings. MoodEmbedding, TemporalMemoryRing SHIPPED G9 live lanes stay empty.las lanes vivas G9 siguen vacías.
L10 Emotion space, VADL10 Espacio emocional, VAD Full VAD. Dominance ships with the same physiology-only bound as valence.VAD completo. La dominancia se publica con el mismo límite de solo fisiología que la valencia. DimensionEstimates SHIPPED M1-B.
L11 Clinical trend engineL11 Motor de tendencia clínica Momentary to daily to weekly rollups, burnout risk indicator and PHQ-9 or GAD-7 wellness trend estimates with non diagnostic framing.Agregados de momento a día a semana, indicador de riesgo de agotamiento y estimaciones de tendencia de bienestar PHQ-9 o GAD-7 con encuadre no diagnóstico. ClinicalTrendRing, WellnessTrendEstimator SHIPPED M7, non diagnostic.M7, no diagnóstico.
L12 Explainable AIL12 IA explicable One entry per surviving signal, an explicit list of unavailable signals, and the detected confounders, all on the result value.Una entrada por cada señal superviviente, una lista explícita de señales no disponibles y los confusores detectados, todo en el valor de resultado. MoodStateResult, SignalContribution SHIPPED heuristic plus occlusion (M3-H).heurística más oclusión (M3-H).
L13 Continuous personal learningL13 Aprendizaje personal continuo User corrections shift a personal prior by a bounded logit amount. Corrections tilt; they never dictate.Las correcciones del usuario desplazan un prior personal en una cantidad acotada de logit. Las correcciones inclinan; nunca dictan. PersonalPriorAdjustments SHIPPED 4-parameter correction, safe not useful (M6).corrección de 4 parámetros, segura no útil (M6).
L14 Privacy architectureL14 Arquitectura de privacidad Seven individually revocable consent groups, no raw audio or images on disk, on device only storage, full erase path.Siete grupos de consentimiento revocables por separado, ningún audio ni imagen en disco, almacenamiento solo en el dispositivo y ruta de borrado. SignalSource, SignalConsentStore SHIPPED full detail in section 6.detalle completo en la sección 6.
L15 Energy optimizationL15 Optimización energética Adaptive cadence, caches, rate limited transport, session scoped sensors, microphone and camera stopped before processing.Cadencia adaptativa, cachés, transporte con límite de tasa, sensores solo durante la sesión y micrófono y cámara detenidos antes de procesar. MoodSessionCoordinator PARTIAL background budget M2, ANE and INT8 M3, hardware measurement M5.presupuesto en segundo plano M2, ANE e INT8 M3, medición en hardware M5.

3.1 L1, sensor acquisition

3.1 L1, adquisición de sensores

Five implementations carry L1. Services/Health/HealthMetricsService.swift is the legacy four type read, heart rate, resting heart rate, HRV SDNN and date of birth, with an eight second per query ceiling (:123, rationale at :115-122). Services/Health/ExtendedHealthMetricsService.swift is the wide read: sleep, wrist temperature, steps, energy, exercise and stand, last workout, respiratory rate, SDNN, VO2max, heart rate recovery and walking heart rate (:291-370), plus three live anchored queries during a session (:400-407). SessionLivePhysioService.swift together with WorkoutLiveHeartRateService.swift supplies continuous optical heart rate on the watch. Services/Sensors/MotionFeatureService.swift reads CoreMotion inertial data at 50 Hz, only between begin and end. Services/Sensors/InteractionMetricsRecorder.swift captures tap rhythm, response latency and erraticness, and is permission free because it only observes gestures the app already receives (:6-12).

Cinco implementaciones sostienen L1. Services/Health/HealthMetricsService.swift es la lectura heredada de cuatro tipos, frecuencia cardíaca, frecuencia en reposo, VFC SDNN y fecha de nacimiento, con un techo de ocho segundos por consulta (:123, justificación en :115-122). Services/Health/ExtendedHealthMetricsService.swift es la lectura amplia: sueño, temperatura de muñeca, pasos, energía, ejercicio y de pie, último entrenamiento, frecuencia respiratoria, SDNN, VO2max, recuperación de frecuencia cardíaca y frecuencia cardíaca al caminar (:291-370), más tres consultas ancladas en vivo durante la sesión (:400-407). SessionLivePhysioService.swift junto con WorkoutLiveHeartRateService.swift aporta la frecuencia cardíaca óptica continua en el reloj. Services/Sensors/MotionFeatureService.swift lee CoreMotion a 50 Hz, solo entre el inicio y el fin. Services/Sensors/InteractionMetricsRecorder.swift captura ritmo de toque, latencia de respuesta y erraticidad, y no requiere permiso porque solo observa gestos que la app ya recibe (:6-12).

What is missing is background and passive collection. ExtendedHealthMetricsService.swift:419-422 explicitly does not call enableBackgroundDelivery. The anchored queries live exactly as long as the assessment. That is milestone M2, and it is the milestone that changes the privacy story materially, which is why section 6.7 treats it separately.

Lo que falta es la recogida pasiva y en segundo plano. ExtendedHealthMetricsService.swift:419-422 deliberadamente no llama a enableBackgroundDelivery. Las consultas ancladas viven exactamente lo que dura la evaluación. Ese es el hito M2, y es el hito que cambia materialmente la historia de privacidad, por lo que la sección 6.7 lo trata aparte.

3.2 L2, the signal quality engine

3.2 L2, el motor de calidad de señal

Every feature carries a quality value from 0 to 1 supplied by its source (SensorFeature.swift:136), clamped in init at :151. Freshness is computed at use time and never stored, so an old packet cannot lie about its age (:157-159). There are four freshness classes with fixed weights (:87-113): live, under 60 seconds, weight 1.0; recent, under 15 minutes, weight 0.7; historical, under 24 hours, weight 0.4; and baseline, older than that, weight 0.2. The composite per feature weight is quality times the freshness weight factor times the confounder factor (MoodDimensions.swift:297-299, and again for data quality at MoodInferenceEngine.swift:504-506). What is missing is an aggregated per source signal quality index exposed to the interface, which is M2.

Cada señal lleva un valor de quality de 0 a 1 suministrado por su fuente (SensorFeature.swift:136), acotado en el init en :151. La frescura se calcula en el momento de uso y nunca se almacena, de modo que un paquete viejo no puede mentir sobre su edad (:157-159). Hay cuatro clases de frescura con pesos fijos (:87-113): en vivo, menos de 60 segundos, peso 1,0; reciente, menos de 15 minutos, peso 0,7; histórica, menos de 24 horas, peso 0,4; y de línea base, más antigua, peso 0,2. El peso compuesto por señal es calidad por factor de frescura por factor de confusión (MoodDimensions.swift:297-299, y de nuevo para la calidad de datos en MoodInferenceEngine.swift:504-506). Lo que falta es un índice agregado de calidad de señal por fuente expuesto en la interfaz, que corresponde a M2.

3.3 L3, feature extraction

3.3 L3, extracción de características

ProsodyFeatureExtractor.swift, 405 lines, produces eight voice features (:394-403): valence, arousal, pitch mean and variance, energy, pause fraction, speaking rate and tension. It requires at least 3.0 seconds of duration and 1.5 seconds voiced (:99-101) or it returns nothing. FaceExpressionAggregator.swift, 317 lines, produces three facial features (:205-233), valence, arousal and tension, from ARKit blendshape coefficients, requiring at least 30 samples (:62). MotionFeatureExtractor.swift, 378 lines, produces restlessness, activity intensity, tremor band energy and posture transitions. ContextFeatureMath.swift, 330 lines, produces calendar density, event count, minutes to next event and a location category ordinal. HealthDerivedMath.swift and LivePhysioWindow.swift, 255 lines, produce median heart rate, a least squares heart rate trend in beats per minute per minute, and a pseudo RMSSD whose confidence is hard capped at 0.4 (LivePhysioWindow.swift:30-31).

ProsodyFeatureExtractor.swift, 405 líneas, produce ocho señales de voz (:394-403): valencia, activación, media y varianza de tono, energía, fracción de pausa, velocidad de habla y tensión. Exige al menos 3,0 segundos de duración y 1,5 segundos con voz (:99-101) o no devuelve nada. FaceExpressionAggregator.swift, 317 líneas, produce tres señales faciales (:205-233), valencia, activación y tensión, a partir de coeficientes de blendshape de ARKit, con un mínimo de 30 muestras (:62). MotionFeatureExtractor.swift, 378 líneas, produce inquietud, intensidad de actividad, energía en la banda de temblor y transiciones posturales. ContextFeatureMath.swift, 330 líneas, produce densidad de agenda, recuento de eventos, minutos hasta el próximo y un ordinal de categoría de lugar. HealthDerivedMath.swift y LivePhysioWindow.swift, 255 líneas, producen mediana de frecuencia cardíaca, una tendencia por mínimos cuadrados en latidos por minuto por minuto, y un pseudo RMSSD cuya confianza tiene tope duro de 0,4 (LivePhysioWindow.swift:30-31).

One invariant does not change with any milestone: there is no speech to text, ever. Acoustic biomarkers only. There is no SFSpeechRecognizer anywhere in the tree (VoiceProsodyService.swift:8-14).

Un invariante no cambia con ningún hito: jamás hay conversión de voz a texto. Solo biomarcadores acústicos. No existe SFSpeechRecognizer en ninguna parte del árbol (VoiceProsodyService.swift:8-14).

3.4 L4, the physiological state model and its six dimensions

3.4 L4, el modelo de estado fisiológico y sus seis dimensiones

MoodDimensions.swift, 619 lines, produces DimensionEstimates (:33-64): six continuous numbers with explicit ranges, arousal 0 to 100, valence minus 100 to plus 100, regulation capacity 0 to 100, stress index 0 to 100, recovery index 0 to 100 and emotional readiness 0 to 100, plus valenceEvidence, which records the provenance of the valence number. Every formula is one readable line with named coefficients (:340-354):

MoodDimensions.swift, 619 líneas, produce DimensionEstimates (:33-64): seis números continuos con rangos explícitos, activación de 0 a 100, valencia de menos 100 a más 100, capacidad de regulación de 0 a 100, índice de estrés de 0 a 100, índice de recuperación de 0 a 100 y disposición emocional de 0 a 100, más valenceEvidence, que registra la procedencia del valor de valencia. Cada fórmula es una sola línea legible con coeficientes nombrados (:340-354):

arousal    = 50 + 25*wz(HR) + 10*wz(resp) + 15*act + 8*wz(voice/face)
valence    = self report within 2 h -> 70/30 blend with sensor valence
             voice or face          -> 60/40 blend with the physiological hint
             body only              -> clamp(-15*wz(HR) + 10*wz(SDNN), +/- 15)
regulation = 50 + 18*wz(SDNN) + 8*wz(RMSSD) + 8*clamp(sleep-7, +/-3)*w - 10*wz(HR trend)
stress     = 35 + 0.5*max(arousal-60, 0) - 12*wz(SDNN) + 20*restlessness*w
                + 15*calendarDensity*w
recovery   = 50 + 7*clamp(sleep-7, +/-3)*w - 6*debt*w + 40*(deep-0.18)*w
                - 8*abs(wz(temp)) - 10*max(0, 1 - minSinceWorkout/180)*w
readiness  = 0.4*regulation + 0.35*recovery + 0.25*(100 - stress)

The helper wz(id) is the robust z score times the minimum of the weight and 1 (MoodDimensions.swift:141-144). A half quality signal moves the estimate half as much; a signal nulled by a confounder moves it not at all. That is what gives L6 teeth. Note also the honest neutral: empty input yields exactly DimensionEstimates.neutral (:55-63), where the stress index is 35 and not 50, because "I know nothing" is not "you are halfway to overwhelmed" (:205-207).

El auxiliar wz(id) es la puntuación z robusta multiplicada por el mínimo entre el peso y 1 (MoodDimensions.swift:141-144). Una señal con media calidad mueve la estimación la mitad; una señal anulada por un confusor no la mueve en absoluto. Eso es lo que da mordida a L6. Fíjese también en el neutro honesto: una entrada vacía produce exactamente DimensionEstimates.neutral (:55-63), donde el índice de estrés es 35 y no 50, porque "no sé nada" no es "vas por la mitad del camino al desbordamiento" (:205-207).

3.5 L6, confounder detection, the most defensible piece in the system

3.5 L6, detección de confusores, la pieza más defendible del sistema

The rationale, from ConfounderDetector.swift:6-10, is worth quoting: the body raises its pulse for a hundred reasons that are not emotional. Running for twenty minutes, a double espresso, the flu, or a loose watch strap produce exactly the same cardiovascular signature as an intense emotion. If the estimator treated that signature as emotional evidence, it would tell the user they are anxious when in fact they just climbed the stairs. This layer is also the piece with the strongest independent methodological backing in the whole product: it is the direct implementation of the confound control that the HRV methodology literature demands12.

La justificación, en ConfounderDetector.swift:6-10, merece cita: el cuerpo acelera el pulso por cien razones que no son emocionales. Correr veinte minutos, un espresso doble, la gripe o una correa floja producen exactamente la misma firma cardiovascular que una emoción intensa. Si el estimador tratara esa firma como evidencia emocional, le diría al usuario que está ansioso cuando en realidad acaba de subir las escaleras. Esta capa es además la que tiene mejor respaldo metodológico independiente de todo el producto: es la implementación directa del control de confusores que exige la literatura metodológica sobre VFC12.

The five confounder rules, from Domain/MoodEstimation/ConfounderDetector.swift. All comparisons are strict, so the boundary is a point and not a zone (:31-34).Las cinco reglas de confusores, de Domain/MoodEstimation/ConfounderDetector.swift. Todas las comparaciones son estrictas, de modo que el límite es un punto y no una zona (:31-34).
# RuleRegla TriggerDisparador AffectsAfecta a FactorFactor LineLínea
1 Recent exerciseEjercicio reciente minutes since workout below 45, or the .recentExercise flagminutos desde el entrenamiento por debajo de 45, o la bandera .recentExercise the whole cardio family, 8 identifierstoda la familia cardio, 8 identificadores 0.25 :184-189
2 Movement while measuringMovimiento durante la medición restlessness above 0.5inquietud por encima de 0,5 SDNN and RMSSDSDNN y RMSSD 0.30 :191-194
3 Caffeine or alcoholCafeína o alcohol flag less than 4 hours oldbandera de menos de 4 horas the cardio familyla familia cardio 0.60 :196-202
4 IllnessEnfermedad flag less than 24 hours oldbandera de menos de 24 horas cardio, respiratory and temperaturecardio, respiratorio y temperatura 0.50 :204-207
5 Poor sensor contactMal contacto del sensor that signal's quality below 0.3calidad de esa señal por debajo de 0,3 that cardio signal onlysolo esa señal cardio 0.20 :209-221

Factors multiply rather than taking a maximum. combinedFactor(for:adjustments:) (:229-235) returns the product. Exercise at 0.25 plus caffeine at 0.6 on heartRateBPM gives 0.15, because two independent reasons to distrust a signal justify distrusting it more than one does (:23-24). Caffeine and alcohol together give 0.36. The aggregate confounderLoad (:252-267) is one minus the mean factor, scaled by the proportion of present signals that were affected: how much was discounted, scaled by how much of the picture was discounted. It feeds the confidence formula directly. Nothing is silently discarded: every adjustment carries a noteKey localisation key such as "confounder.recentExercise" (:60-65) that surfaces in the interface.

Los factores se multiplican en lugar de tomar el máximo. combinedFactor(for:adjustments:) (:229-235) devuelve el producto. Ejercicio a 0,25 más cafeína a 0,6 sobre heartRateBPM da 0,15, porque dos razones independientes para desconfiar de una señal justifican desconfiar más que una sola (:23-24). Cafeína y alcohol juntos dan 0,36. La carga agregada confounderLoad (:252-267) es uno menos el factor medio, escalado por la proporción de señales presentes que resultaron afectadas: cuánto se descontó, escalado por qué parte del cuadro se descontó. Alimenta directamente la fórmula de confianza. Nada se descarta en silencio: cada ajuste lleva una clave de localización noteKey como "confounder.recentExercise" (:60-65) que aparece en la interfaz.

3.6 L7, the personal baseline

3.6 L7, la línea base personal

This layer exists because absolute heart rate variability values are meaningless across people. The strongest single citation for that is a quantitative systematic review of 44 studies and 21,438 participants which reports interindividual variation of up to 260,000 percent, particularly for spectral measures14. The personal baseline architecture is a direct, correct response to a real published problem, not a design flourish.

Esta capa existe porque los valores absolutos de VFC carecen de sentido entre personas distintas. La cita más sólida al respecto es una revisión sistemática cuantitativa de 44 estudios y 21.438 participantes que reporta una variación interindividual de hasta 260.000 por ciento, en particular en medidas espectrales14. La arquitectura de línea base personal es una respuesta directa y correcta a un problema publicado y real, no un adorno de diseño.

PersonalBaseline.swift, 375 lines, keeps per feature a ring of 28 daily medians (ringCapacityDays = 28, :107) plus a slow exponentially weighted moving average with alpha 0.05 per day, roughly three to four weeks of memory (:114). The reported centre is a fifty fifty blend of the ring median and the EWMA (:118, :164-169). Ingestion is winsorised: a day whose robust z exceeds 3.5 is clipped to that boundary (winsorZThreshold = 3.5, :110; winsorized(_:) at :201-211), and winsorisation only activates after five days are in the ring (:112). Five days of fever cannot redefine normal; they can only nudge it.

PersonalBaseline.swift, 375 líneas, mantiene por señal un anillo de 28 medianas diarias (ringCapacityDays = 28, :107) más una media móvil exponencial lenta con alfa 0,05 por día, es decir de tres a cuatro semanas de memoria (:114). El centro reportado es una mezcla al cincuenta por ciento entre la mediana del anillo y la EWMA (:118, :164-169). La ingesta está winsorizada: un día cuya z robusta supere 3,5 se recorta a ese límite (winsorZThreshold = 3.5, :110; winsorized(_:) en :201-211), y la winsorización solo se activa cuando hay cinco días en el anillo (:112). Cinco días de fiebre no pueden redefinir lo normal; solo pueden desplazarlo un poco.

Maturity is the count of distinct days divided by 14, capped at 1 (maturityFullDays = 14.0, :109; :142-144). The distinct day count is not reset when the ring evicts old days, because maturity measures experience, not window length. There are eight buckets: four time of day bands, morning 6 to 12, afternoon 12 to 18, evening 18 to 23 and night 23 to 6 (:22-37), crossed with two day types, workday and rest day (:40-43). A bucket only answers once it has 8 ingestions (bucketMinimumSamples = 8, :226, :246-257); before that the global baseline answers, because it learns eight times faster (:220-222).

La madurez es el número de días distintos dividido por 14, con tope en 1 (maturityFullDays = 14.0, :109; :142-144). El recuento de días distintos no se reinicia cuando el anillo descarta días antiguos, porque la madurez mide experiencia, no longitud de ventana. Hay ocho cubos: cuatro franjas horarias, mañana de 6 a 12, tarde de 12 a 18, noche de 18 a 23 y madrugada de 23 a 6 (:22-37), cruzadas con dos tipos de día, laborable y de descanso (:40-43). Un cubo solo responde cuando tiene 8 ingestas (bucketMinimumSamples = 8, :226, :246-257); antes de eso responde la línea base global, porque aprende ocho veces más rápido (:220-222).

The layering contract is explicit (:7-12): the baseline reports centre, median absolute deviation and maturity, and it is the engine, not the baseline, that blends personal with population priors. That blend lives in exactly one place. Population priors when the personal baseline is silent are a resting heart rate of 65 beats per minute with an MAD of 8, and an age modelled expected SDNN with an MAD of 25 percent of it, deliberately reusing HealthMoodEstimator's constants so that there are never two populations in the same binary (MoodDimensions.swift:250-267). The Codable conformance is hand written as arrays of explicit pairs sorted by key, so the on disk file is deterministic and diffable and is not hostage to a compiler synthesis detail (:304-375).

El contrato de capas es explícito (:7-12): la línea base reporta centro, desviación absoluta mediana y madurez, y es el motor, no la línea base, quien mezcla lo personal con los priores poblacionales. Esa mezcla vive en un único sitio. Los priores poblacionales cuando la línea base personal calla son una frecuencia cardíaca en reposo de 65 latidos por minuto con MAD de 8, y un SDNN esperado modelado por edad con MAD del 25 por ciento de ese valor, reutilizando deliberadamente las constantes de HealthMoodEstimator para que nunca haya dos poblaciones en el mismo binario (MoodDimensions.swift:250-267). La conformidad Codable está escrita a mano como arreglos de pares explícitos ordenados por clave, de modo que el archivo en disco es determinista y comparable y no depende de un detalle de síntesis del compilador (:304-375).

3.7 L8, multimodal fusion and the honesty mechanism

3.7 L8, fusión multimodal y el mecanismo de honestidad

HeuristicMoodInferenceModel in MoodInferenceEngine.swift, 523 lines, computes the emotion distribution (:377-422). For each catalog emotion that has a prototype:

HeuristicMoodInferenceModel, en MoodInferenceEngine.swift, 523 líneas, calcula la distribución de emociones (:377-422). Para cada emoción del catálogo que tenga prototipo:

d     = norm( (valence/100, arousal/100) - (proto.valence, proto.arousal) )
sigma = 0.35 * (1 + 1.0*(1 - dataQuality))
score = exp(-d*d / (2*sigma*sigma))
        * (1 + 0.3 * proto.regulationAffinity * (regulation - 50)/50)

Scores are then clamped at zero and normalised to sum to one. The sigma widens as data quality falls, so poor data produces a flatter, humbler distribution. That is the fusion's honesty mechanism and it is a single line, MoodInferenceEngine.swift:383. The enlightenment emotion is hard wired to probability zero, always (:112, :392-395), because a wrist sensor does not detect enlightenment (EmotionAffectPrototypes.swift:76-78).

Los puntajes se acotan luego a cero y se normalizan para sumar uno. La sigma se ensancha cuando cae la calidad del dato, de modo que un dato pobre produce una distribución más plana y más humilde. Ese es el mecanismo de honestidad de la fusión y es una sola línea, MoodInferenceEngine.swift:383. La emoción enlightenment está fijada a probabilidad cero, siempre (:112, :392-395), porque un sensor de muñeca no detecta la iluminación (EmotionAffectPrototypes.swift:76-78).

The prototype coordinates live in EmotionAffectPrototypes.swift, 86 lines, and are labelled for exactly what they are (:22-29): plausible hand tuned placements in Russell's circumplex1, not empirically measured coordinates. They are kept deliberately outside EmotionCatalog.json because the catalog is the product contract and this is a replaceable engine detail.

Las coordenadas de los prototipos viven en EmotionAffectPrototypes.swift, 86 líneas, y están etiquetadas exactamente por lo que son (:22-29): ubicaciones plausibles ajustadas a mano en el circumplejo de Russell1, no coordenadas medidas empíricamente. Se mantienen deliberadamente fuera de EmotionCatalog.json porque el catálogo es el contrato de producto y esto es un detalle reemplazable del motor.

3.8 L9 to L13, what shipped after the original audit

3.8 De L9 a L13, lo que se publicó después de la auditoría original

L9, temporal memory, now ships as Domain/MoodEstimation/TemporalMemory/ (MoodEmbedding, ring, trend features). G9 live trend lanes stay empty after two honest constructions (WESAD and K-EmoCon) found no personal memory. L10 is complete as a three-axis space: dominance ships in DimensionEstimates with the same physiology-only bound as valence. The published literature still supports that caution: the three factor theory paper is a self report instrument study and provides no physiological identification of dominance at all2.

L9, memoria temporal, se publica ahora como Domain/MoodEstimation/TemporalMemory/ (MoodEmbedding, anillo, señales de tendencia). Las lanes vivas de G9 siguen vacías tras dos construcciones honestas (WESAD y K-EmoCon) que no hallaron memoria personal. L10 está completo como espacio de tres ejes: la dominancia viaja en DimensionEstimates con el mismo límite de solo fisiología que la valencia. La literatura publicada sigue respaldando esa cautela: el artículo de la teoría de tres factores es un estudio de instrumento de autorreporte y no aporta ninguna identificación fisiológica de la dominancia2.

L11, the clinical trend engine, shipped as M7 on 2026-08-14: wellness estimates inspired by PHQ-9/GAD-7 questionnaires, never a score, always with confidence and declared factors. L12 occlusion attribution shipped as M3-H. L13 personal learning shipped as M6: a four-parameter on-device correction, vetoable, measured safe and not useful on K-EmoCon. Section 12.3 still explains why L11 is the highest regulatory exposure.

L11, el motor de tendencia clínica, se publicó como M7 el 2026-08-14: estimaciones de bienestar inspiradas en cuestionarios PHQ-9/GAD-7, nunca una puntuación, siempre con confianza y factores declarados. L12, atribución por oclusión, se publicó como M3-H. L13, aprendizaje personal, se publicó como M6: una corrección de cuatro parámetros en el dispositivo, vetable, medida como segura y no útil en K-EmoCon. La sección 12.3 sigue explicando por qué L11 es la mayor exposición regulatoria.

3.9 L12, explainability

3.9 L12, explicabilidad

MoodStateResult carries three explanation channels. contributingSignals is a list of SignalContribution values, one entry per surviving signal, each with a weight from 0 to 1 after quality, freshness and confounders, a signed direction toward arousal, the freshness class, and the note key of the first confounder that touched it (MoodInferenceEngine.swift:299-317). The doc comment states the contract: everything that survives validation appears here or in unavailableSignals, nothing is weighted in silence (MoodStateResult.swift:12-13). unavailableSignals is the canonical set minus what was present, sorted deterministically (:318-321). detectedConfounders completes the picture. Alongside them sit confidence, dataQuality, operatingMode and baselineMaturity on the same value. Occlusion based per modality attribution and SHAP style per feature attribution are M3.

MoodStateResult lleva tres canales de explicación. contributingSignals es una lista de valores SignalContribution, una entrada por cada señal superviviente, cada una con su peso de 0 a 1 tras calidad, frescura y confusores, una dirección con signo hacia la activación, la clase de frescura y la clave de nota del primer confusor que la tocó (MoodInferenceEngine.swift:299-317). El comentario de documentación enuncia el contrato: todo lo que sobrevive a la validación aparece aquí o en unavailableSignals, nada se pondera en silencio (MoodStateResult.swift:12-13). unavailableSignals es el conjunto canónico menos lo presente, ordenado de forma determinista (:318-321). detectedConfounders completa el cuadro. Junto a ellos viajan confidence, dataQuality, operatingMode y baselineMaturity en el mismo valor. La atribución por modalidad basada en oclusión y la atribución por característica estilo SHAP corresponden a M3.

3.10 L13, bounded personal learning

3.10 L13, aprendizaje personal acotado

PersonalPriorAdjustments.swift, 130 lines, is a small file making a large honesty claim, and the claim is mathematically provable. When the user corrects an inference, saying for instance that what the app called fear was anger, the corrected emotion gains a bias and the inferred one loses one. The bias is applied as an exponential on the raw distribution, that is a logit shift, and every bias is clamped to plus or minus 0.5 (biasClamp = 0.5, :34, applied at :106-121). The bound follows directly: an emotion at probability 0.05 carrying the maximum positive bias reaches about 0.082, which cannot overtake an emotion at probability 0.5 even when that one carries the minimum bias and falls to about 0.303. Corrections tilt; they never dictate. Tests/UserCorrectionTests.swift pins exactly that case across 13 tests.

PersonalPriorAdjustments.swift, 130 líneas, es un archivo pequeño con una afirmación grande sobre honestidad, y la afirmación es demostrable matemáticamente. Cuando el usuario corrige una inferencia, diciendo por ejemplo que lo que la app llamó miedo era ira, la emoción corregida gana un sesgo y la inferida pierde uno. El sesgo se aplica como exponencial sobre la distribución cruda, es decir un desplazamiento en logit, y todo sesgo se acota a más o menos 0,5 (biasClamp = 0.5, :34, aplicado en :106-121). La cota se sigue de inmediato: una emoción en probabilidad 0,05 con el sesgo positivo máximo llega a unos 0,082, que no puede superar a una emoción en 0,5 aunque esta lleve el sesgo mínimo y baje a unos 0,303. Las correcciones inclinan; nunca dictan. Tests/UserCorrectionTests.swift fija exactamente ese caso en 13 pruebas.

The learning rate is 0.05, roughly twelve same direction corrections to saturate (:28), decay is 0.98 per update so stale preferences fade (:32), and the housekeeping threshold is 0.005 so the dictionary never accumulates ghosts (:37). Critically, the nudge is applied to the raw distribution before smoothing (MoodInferenceEngine.swift:247-253), so the hysteresis still governs label transitions. A correction can tilt the distribution but can never change the displayed label outside the smoother's rules. Federated learning is explicitly deferred until a server and a privacy review exist.

La tasa de aprendizaje es 0,05, aproximadamente doce correcciones en la misma dirección para saturar (:28), el decaimiento es 0,98 por actualización para que las preferencias viejas se desvanezcan (:32), y el umbral de limpieza es 0,005 para que el diccionario nunca acumule fantasmas (:37). Críticamente, el empuje se aplica a la distribución cruda antes del suavizado (MoodInferenceEngine.swift:247-253), de modo que la histéresis sigue gobernando las transiciones de etiqueta. Una corrección puede inclinar la distribución pero nunca puede cambiar la etiqueta mostrada fuera de las reglas del suavizador. El aprendizaje federado queda explícitamente aplazado hasta que existan un servidor y una revisión de privacidad.

3.11 L15, energy

3.11 L15, energía

Shipped today: the adaptive 5 to 15 second cadence (MoodSessionCoordinator.swift:112-119), a five minute historical HealthKit cache (:121), a ten minute baseline cache (:123), a rate limit of at most one live packet per five seconds (:126), session scoped sensors only (:30-45), and microphone and camera stopped before processing begins (VoiceProsodyService.swift:133, FaceExpressionService.swift:98). Missing: a background energy budget, which is M2; Apple Neural Engine and INT8 work, which is M3; and an on hardware measurement pass, which is M5. No physical device validation has been done for v1 sensing at all. That is risk R4 and it is stated as such in section 13.

Entregado hoy: la cadencia adaptativa de 5 a 15 segundos (MoodSessionCoordinator.swift:112-119), una caché histórica de HealthKit de cinco minutos (:121), una caché de línea base de diez minutos (:123), un límite de como mucho un paquete en vivo cada cinco segundos (:126), sensores activos solo durante la sesión (:30-45) y micrófono y cámara detenidos antes de empezar a procesar (VoiceProsodyService.swift:133, FaceExpressionService.swift:98). Falta: un presupuesto energético en segundo plano, que es M2; el trabajo de Apple Neural Engine e INT8, que es M3; y una pasada de medición en hardware, que es M5. No se ha hecho ninguna validación en dispositivo físico para la captación v1. Ese es el riesgo R4 y se declara como tal en la sección 13.

4. One inference cycle, end to end

4. Un ciclo de inferencia completo

Every five to fifteen seconds, on each device independently, the system takes whatever sensor evidence exists, refuses anything implausible, discounts anything with a non emotional explanation, scores it against that person's own history, turns it into six numbers and a probability distribution over 17 emotions, brakes the result against sudden change, attaches a confidence value that can never reach certainty, and hands the whole thing to the interface with a full account of what contributed and what was missing. What follows is that trace with the real type names.

Cada cinco a quince segundos, en cada dispositivo por separado, el sistema toma la evidencia sensorial que exista, rechaza lo inverosímil, descuenta lo que tiene explicación no emocional, lo puntúa contra la historia propia de esa persona, lo convierte en seis números y una distribución de probabilidad sobre 17 emociones, frena el resultado ante cambios bruscos, le adjunta un valor de confianza que nunca puede alcanzar la certeza, y entrega el conjunto a la interfaz con una rendición de cuentas completa de qué contribuyó y qué faltó. Lo que sigue es esa traza con los nombres de tipo reales.

sensor sample
  -> SensorFeature                 (derived value + quality + timestamp + source)
  -> SensorFeaturePacket           (schemaVersion, packetID, sequenceNumber, device)
  -> WatchConnectivity merge       (bounded inbox, dedup ring, clock offset)
  -> FeatureValidator              (dedup, canonical reorder, range reject, dedup)
  -> ConfounderDetector            (five rules, multiplied factors)
  -> MoodDimensions.normalize      (robust z against the personal baseline)
  -> MoodDimensions.estimate       (six continuous dimensions)
  -> distribution over 17 prototypes
  -> PersonalPriorAdjustments      (bounded logit nudge, applied to RAW)
  -> MoodSmoother                  (cadence invariant EWMA + hysteresis)
  -> confidence                    (clamped 0.05 .. 0.95)
  -> MoodStateResult
  -> MoodResultEnricher            (Hawkins range, recommended Hz)
  -> MoodResultDigest              (cross device delivery)
  -> UI                            (polled at 1 Hz)

The MoodInferenceEngine protocol boundary sits between "distribution" and
"MoodStateResult". That boundary is the CoreML insertion point for M3.

4.1 Sensor sample to SensorFeature

4.1 De la muestra del sensor a SensorFeature

Each provider reduces raw samples to derived values, and nothing raw survives the call. LivePhysioWindow.sensorFeatures(source:) (Domain/MoodEstimation/LivePhysioWindow.swift:59 onward) emits .heartRateBPM as the median, which is robust against a single bad optical read, .heartRateTrendBPMPerMin as a least squares slope, and, only when the density conditions are met, .hrvRMSSDms with quality equal to an RMSSD confidence that cannot exceed 0.4. An absent signal is absent: a fabricated zero is never emitted (:54-56). ProsodyAccumulator.finish(durationSeconds:) produces ProsodyFeatures and then eight SensorFeature values. FaceExpressionAggregator.finish() produces three. ExtendedHealthFeatures.sensorFeatures(source:) (ExtendedHealthMetricsService.swift:113-139) produces up to 17, each carrying its own timestamp so freshness is honest, with nil fields omitted rather than sent as zero (:111-112).

Cada proveedor reduce las muestras crudas a valores derivados, y nada crudo sobrevive a la llamada. LivePhysioWindow.sensorFeatures(source:) (Domain/MoodEstimation/LivePhysioWindow.swift:59 en adelante) emite .heartRateBPM como mediana, robusta frente a una única lectura óptica mala, .heartRateTrendBPMPerMin como pendiente por mínimos cuadrados y, solo cuando se cumplen las condiciones de densidad, .hrvRMSSDms con calidad igual a una confianza de RMSSD que no puede superar 0,4. Una señal ausente está ausente: nunca se emite un cero fabricado (:54-56). ProsodyAccumulator.finish(durationSeconds:) produce ProsodyFeatures y de ahí ocho valores SensorFeature. FaceExpressionAggregator.finish() produce tres. ExtendedHealthFeatures.sensorFeatures(source:) (ExtendedHealthMetricsService.swift:113-139) produce hasta 17, cada una con su propia marca de tiempo para que la frescura sea honesta, omitiendo los campos nulos en lugar de enviarlos como cero (:111-112).

The shape of SensorFeature (SensorFeature.swift:127-153) is an identifier, a value, a unit, a timestamp, a window length in seconds, a quality clamped between 0 and 1, and a source device. The identifier type SensorFeatureID is a struct wrapping a String rather than an enum, and that is deliberate (:3-12): packets cross WatchConnectivity between app versions that may not match, and a frozen enum fails to decode an unknown case and throws away the whole packet. There are 48 declared identifiers across nine families: cardio 8, respiration 2, sleep 6, temperature 1, activity and motion 10, voice 8, face 3, context 7, and in app interaction 3.

La forma de SensorFeature (SensorFeature.swift:127-153) es un identificador, un valor, una unidad, una marca de tiempo, una longitud de ventana en segundos, una calidad acotada entre 0 y 1 y un dispositivo de origen. El tipo de identificador SensorFeatureID es una struct que envuelve una cadena y no un enum, y eso es deliberado (:3-12): los paquetes cruzan WatchConnectivity entre versiones de la app que pueden no coincidir, y un enum congelado falla al decodificar un caso desconocido y descarta el paquete entero. Hay 48 identificadores declarados en nueve familias: cardio 8, respiración 2, sueño 6, temperatura 1, actividad y movimiento 10, voz 8, rostro 3, contexto 7 e interacción en la app 3.

4.2 Feature to packet, and packet across the wire

4.2 De señal a paquete, y del paquete al otro dispositivo

MoodSessionCoordinator.performTick() (Services/MoodEstimation/MoodSessionCoordinator.swift:465-568) gathers cached historical features, live physiology, motion, interaction metrics and pushed external features from voice, face, calendar and location; applies the defensive consent filter Self.isFeatureAllowed(_:granted:) at :498; and builds a SensorFeaturePacket at :504-511. The packet (SensorFeaturePacket.swift:32-45) carries a schema version fixed at 1, a packet identifier, a monotonic per device sequence number, the device, a creation date, the features and the confounder flags. The sequence number is the trustworthy ordering key, because the sender's clock is suspect by design (:37-39).

MoodSessionCoordinator.performTick() (Services/MoodEstimation/MoodSessionCoordinator.swift:465-568) reúne señales históricas en caché, fisiología en vivo, movimiento, métricas de interacción y señales externas empujadas desde voz, rostro, agenda y ubicación; aplica el filtro defensivo de consentimiento Self.isFeatureAllowed(_:granted:) en :498; y construye un SensorFeaturePacket en :504-511. El paquete (SensorFeaturePacket.swift:32-45) lleva una versión de esquema fijada en 1, un identificador de paquete, un número de secuencia monótono por dispositivo, el dispositivo, una fecha de creación, las señales y las banderas de confusión. El número de secuencia es la clave de ordenación fiable, porque el reloj del emisor es sospechoso por diseño (:37-39).

The three payload kinds that cross WatchConnectivity, from Services/Connectivity/WatchConnectivitySyncService.swift:59-69.Los tres tipos de carga que cruzan WatchConnectivity, de Services/Connectivity/WatchConnectivitySyncService.swift:59-69.
KeyClave PayloadCarga TransportTransporte CadenceCadencia
"packet" SensorFeaturePacket as JSONSensorFeaturePacket en JSON sendMessage at most one every 5 s, enforced by the caller (MoodSessionCoordinator.liveSendIntervalSeconds = 5, applied at :516-519)como mucho uno cada 5 s, impuesto por el llamador (MoodSessionCoordinator.liveSendIntervalSeconds = 5, aplicado en :516-519)
"breathPayload" BreathSyncPayload, at most 20 BreathSessionRecord valuesBreathSyncPayload, como mucho 20 valores BreathSessionRecord transferUserInfo deferred only, on session close or studio appearsolo diferido, al cerrar la sesión o al abrir el estudio
"sharedContext" SyncSharedContext: consents, mood digest, breath safety profileSyncSharedContext: consentimientos, resumen de ánimo, perfil de seguridad respiratoria updateApplicationContext on changeal cambiar

There is also a ping and pong of four TimeInterval values used for clock offset estimation (:287-306), reduced to the median of the last nine samples (DeviceSyncing.swift:280-312). Inboxes are bounded at 128 packets and 64 breath payloads (:48-55), and transport level deduplication uses a PacketIDRing of capacity 256, with separate rings for packets and breath payloads (:86-91). The coordinator drains the inbox, re applies the consent filter to incoming features even though the sender already applied the synced consent, which is defence in depth (:520-533), and retains remote packets for 120 seconds (:155).

Hay además un intercambio de ping y pong con cuatro valores TimeInterval para estimar el desfase de reloj (:287-306), reducido a la mediana de las últimas nueve muestras (DeviceSyncing.swift:280-312). Las bandejas de entrada están acotadas a 128 paquetes y 64 cargas de respiración (:48-55), y la deduplicación a nivel de transporte usa un PacketIDRing de capacidad 256, con anillos separados para paquetes y cargas de respiración (:86-91). El coordinador vacía la bandeja, vuelve a aplicar el filtro de consentimiento a las señales entrantes aunque el emisor ya haya aplicado el consentimiento sincronizado, lo que es defensa en profundidad (:520-533), y retiene los paquetes remotos durante 120 segundos (:155).

4.3 Validation: four deterministic stages

4.3 Validación: cuatro etapas deterministas

FeatureValidator.validate(packets:now:) (Domain/MoodEstimation/FeatureValidator.swift:148-243) runs four stages. First, packet deduplication: a repeated packet identifier is a re delivery and is discarded, and a repeated device and sequence number pair keeps the first seen (:154-171). Second, canonical reorder: sort by device raw value then sequence number, because arriving late is not the data's sin, it is the transport's (:78-80). Third, impossible value rejection: non finite values; values outside a per identifier plausible physiological range; and timestamps more than 120 seconds in the future (:108). Fourth, feature deduplication: newest wins per identifier and source, with exact ties keeping the first in canonical order (:202-214).

FeatureValidator.validate(packets:now:) (Domain/MoodEstimation/FeatureValidator.swift:148-243) ejecuta cuatro etapas. Primera, deduplicación de paquetes: un identificador de paquete repetido es una reentrega y se descarta, y un par repetido de dispositivo y número de secuencia conserva el primero visto (:154-171). Segunda, reordenación canónica: ordenar por valor bruto del dispositivo y luego por número de secuencia, porque llegar tarde no es pecado del dato sino del transporte (:78-80). Tercera, rechazo de valores imposibles: valores no finitos; valores fuera de un rango fisiológico plausible por identificador; y marcas de tiempo más de 120 segundos en el futuro (:108). Cuarta, deduplicación de señales: gana la más reciente por identificador y fuente, y en empate exacto se conserva la primera en orden canónico (:202-214).

Plausible physiological ranges enforced at FeatureValidator.swift:110-135. Values outside these are rejected and counted by reason.Rangos fisiológicos plausibles aplicados en FeatureValidator.swift:110-135. Los valores fuera de estos se rechazan y se cuentan por motivo.
Feature identifierIdentificador de señal Accepted rangeRango aceptado
heartRateBPM25 to 230
restingHeartRateBPM30 to 120
hrvSDNNms1 to 400
hrvRMSSDms1 to 400
respiratoryRateBrPM4 to 60
sleepDurationHours0 to 16
wristTemperatureDeviationC-3.0 to 3.0

Unknown identifiers are deliberately kept unvalidated (:92-99). String backed identifiers exist precisely so that an old app survives a future app's signals, and rejecting what it cannot recognise would defeat that. Rejections are counted by reason and never silent: ValidatedFeatureSet.rejectionCounts carries six reasons (:18-37).

Los identificadores desconocidos se mantienen deliberadamente sin validar (:92-99). Los identificadores respaldados por cadenas existen precisamente para que una app antigua sobreviva a las señales de una app futura, y rechazar lo que no reconoce lo echaría por tierra. Los rechazos se cuentan por motivo y nunca en silencio: ValidatedFeatureSet.rejectionCounts lleva seis motivos (:18-37).

4.4 Baseline z scoring, dimensions, distribution, smoothing

4.4 Puntuación z contra la línea base, dimensiones, distribución y suavizado

Z scoring (MoodDimensions.swift:301-320) computes a robust z against baseline.expected(for:bucket:) if the personal baseline answers; otherwise against the population prior if one exists for that identifier; otherwise z is zero and the weight is halved (missingBaselineWeightFactor = 0.5, :154), because the raw value may still be useful, hours of sleep for instance, even when the deviation is not. Fusion then produces DimensionEstimates, the distribution follows, and the personal prior nudge is applied to the raw distribution.

La puntuación z (MoodDimensions.swift:301-320) calcula una z robusta contra baseline.expected(for:bucket:) si la línea base personal responde; si no, contra el prior poblacional si existe uno para ese identificador; y si no, z vale cero y el peso se reduce a la mitad (missingBaselineWeightFactor = 0.5, :154), porque el valor bruto puede seguir siendo útil, las horas de sueño por ejemplo, aunque la desviación no lo sea. La fusión produce entonces DimensionEstimates, sigue la distribución, y el empuje del prior personal se aplica a la distribución cruda.

Smoothing is Domain/MoodEstimation/MoodSmoother.swift, 297 lines, with two independent brakes (:73-88). The first is a cadence invariant exponentially weighted moving average: nominal alpha is 0.3 per 10 seconds, scaled by the real time delta so that the effective alpha is one minus 0.7 raised to the power of delta divided by ten (:95-97, :116-121). Three five second steps converge exactly like one fifteen second step, so changing the sampling rate does not change the dynamics. That is what makes the adaptive cadence safe. The second is primary emotion hysteresis: a challenger replaces the incumbent only if its smoothed probability exceeds the incumbent's by at least 0.15, and it has led for at least two consecutive evaluations, and the incumbent has held for at least 90 seconds (:99-104, :209-225). An isolated spike never changes the label. Cold start emits the first evaluation raw and unsmoothed and sets a 60 second cold start window (:106, :154-168).

El suavizado es Domain/MoodEstimation/MoodSmoother.swift, 297 líneas, con dos frenos independientes (:73-88). El primero es una media móvil exponencial invariante a la cadencia: el alfa nominal es 0,3 por cada 10 segundos, escalado por el intervalo real de modo que el alfa efectivo es uno menos 0,7 elevado al intervalo dividido entre diez (:95-97, :116-121). Tres pasos de cinco segundos convergen exactamente igual que un paso de quince, así que cambiar la tasa de muestreo no cambia la dinámica. Eso es lo que hace segura la cadencia adaptativa. El segundo es la histéresis de la emoción primaria: un aspirante sustituye al titular solo si su probabilidad suavizada supera a la del titular por al menos 0,15, ha liderado al menos dos evaluaciones consecutivas y el titular lleva al menos 90 segundos (:99-104, :209-225). Un pico aislado nunca cambia la etiqueta. El arranque en frío emite la primera evaluación en crudo sin suavizar y fija una ventana de arranque de 60 segundos (:106, :154-168).

4.5 Confidence, verbatim

4.5 Confianza, literal

confidence = clamp( dataQuality
                  * (0.3 + 0.7*baselineMaturity)
                  * valenceEvidenceFactor   // 1.0 self report, 0.8 voice/face,
                                            // 0.5 physiology only
                  * (1 - 0.5*confounderLoad)
                  * agreementFactor
                  * coldStartFactor,        // 0.8 inside the first minute
                  0.05, 0.95 )              // never certainty, never zero

dataQuality = sum( quality_i * freshness_i * confounderFactor_i * importance_i )
            / sum( importance_j )
              over the WHOLE canonical set of the operating mode

The formula is at MoodInferenceEngine.swift:272-282 and the data quality computation at :488-515. Note the denominator: a missing canonical signal contributes zero to the numerator but stays in the denominator. Missing costs. And when the same measure arrives from two sources, only the best effective quality counts, because two watches are not two pieces of evidence (:485-487). The agreementFactor (MoodDimensions.swift:502-514) measures whether the cardio and respiratory signals contradict each other: each is oriented toward arousal, heart rate positive, SDNN negative and so on (:518-528), scaled by weight, and agreement is one minus d over d plus one, where d is the mean absolute deviation. Fewer than two usable signals returns 1.0, because a single voice never contradicts itself.

La fórmula está en MoodInferenceEngine.swift:272-282 y el cálculo de calidad de datos en :488-515. Obsérvese el denominador: una señal canónica ausente aporta cero al numerador pero permanece en el denominador. Faltar cuesta. Y cuando la misma medida llega de dos fuentes solo cuenta la mejor calidad efectiva, porque dos relojes no son dos pruebas (:485-487). El agreementFactor (MoodDimensions.swift:502-514) mide si las señales cardio y respiratorias se contradicen: cada una se orienta hacia la activación, la frecuencia cardíaca en positivo, el SDNN en negativo y así (:518-528), escalada por su peso, y el acuerdo es uno menos d entre d más uno, donde d es la desviación absoluta media. Con menos de dos señales utilizables devuelve 1,0, porque una sola voz nunca se contradice a sí misma.

Two determinism details are worth stating because they show the level of care. The data quality sums iterate in sorted raw value order, because Set and Dictionary iteration order is unspecified and floating point addition is not associative; without that ordering two identical runs could differ in the last unit in the last place (MoodInferenceEngine.swift:495-499). And the distribution's output order is the catalog's order (:376), while the smoothed distribution is sorted by probability descending with an identifier ascending tiebreak (MoodSmoother.swift:288-296).

Dos detalles de determinismo merecen mención porque muestran el nivel de cuidado. Las sumas de calidad de datos iteran en orden ordenado por valor bruto, porque el orden de iteración de Set y Dictionary no está especificado y la suma en coma flotante no es asociativa; sin ese orden dos ejecuciones idénticas podrían diferir en el último bit significativo (MoodInferenceEngine.swift:495-499). Y el orden de salida de la distribución es el orden del catálogo (:376), mientras que la distribución suavizada se ordena por probabilidad descendente con desempate por identificador ascendente (MoodSmoother.swift:288-296).

4.6 Result, enrichment, digest, display authority

4.6 Resultado, enriquecimiento, resumen y autoridad de visualización

HeuristicMoodInferenceModel.infer assembles MoodStateResult (MoodInferenceEngine.swift:322-348) and then applies an optional enricher closure as the last step (:350-353). MoodResultEnricher.standard does two things. It calls HawkinsEstimator.estimate(...) to fill the estimated Hawkins level, which is always a range, and the label, or else it leaves an honest unavailability reason (:51-69). And it calls FrequencySequencePlanner.plan(...) with a nil objective to fill the recommended mood frequency, which is the catalog Hz of the emotion that is present rather than one the app wants to push the user toward, and the recommended sequence, but only above a minimum frequency confidence of 0.2 (:25, :71-86).

HeuristicMoodInferenceModel.infer ensambla MoodStateResult (MoodInferenceEngine.swift:322-348) y luego aplica un cierre enriquecedor opcional como último paso (:350-353). MoodResultEnricher.standard hace dos cosas. Llama a HawkinsEstimator.estimate(...) para rellenar el nivel Hawkins estimado, que siempre es un rango, y la etiqueta, o bien deja un motivo honesto de indisponibilidad (:51-69). Y llama a FrequencySequencePlanner.plan(...) con objetivo nulo para rellenar la frecuencia recomendada, que es el Hz de catálogo de la emoción presente y no de una hacia la que la app quiera empujar al usuario, y la secuencia recomendada, pero solo por encima de una confianza mínima de 0,2 (:25, :71-86).

The doc comment on MoodStateResult states the five tier scientific taxonomy the whole product rests on (:66-75). One, measured physiological values arrive as SensorFeature. Two, computed features appear in contributingSignals. Three, inferred emotional states are the primary emotion and the dimensions, always with confidence and never as diagnosis. Four, the Hawkins mapping is a range, never a point, never presented as a biological measurement. Five, recommended frequencies are a NewMe Hertz project definition with an explicit per step evidence level.

El comentario de documentación de MoodStateResult enuncia la taxonomía científica de cinco niveles sobre la que descansa todo el producto (:66-75). Uno, los valores fisiológicos medidos llegan como SensorFeature. Dos, las características calculadas aparecen en contributingSignals. Tres, los estados emocionales inferidos son la emoción primaria y las dimensiones, siempre con confianza y nunca como diagnóstico. Cuatro, el mapeo Hawkins es un rango, nunca un punto, nunca presentado como medición biológica. Cinco, las frecuencias recomendadas son una definición del proyecto NewMe Hertz con un nivel de evidencia explícito por paso.

On display authority: the coordinator keeps latestResult, always local, and localDigest, a MoodResultDigest minted once per tick with a fresh digest identifier per construction, because a read by the interface must not change the identity of a delivery (:184-188). The coordinator elected as coordinator publishes its digest at most every five seconds, and only when the primary emotion changed, or the confidence moved by at least 0.05, or the fifteen second heartbeat is due (:612-624). A follower with a fresh remote digest, freshness window 30 seconds and clock offset corrected, paints the remote reading; everyone else paints local (:645-653). When both readings exist, are fresh and both carry confidence of at least 0.4, and they disagree, localDisagreesWithRemote becomes true so the interface confesses the disagreement instead of faking consensus (:661-673).

Sobre la autoridad de visualización: el coordinador mantiene latestResult, siempre local, y localDigest, un MoodResultDigest acuñado una vez por tick con un identificador de resumen nuevo en cada construcción, porque una lectura de la interfaz no debe cambiar la identidad de una entrega (:184-188). El coordinador elegido como coordinador publica su resumen como mucho cada cinco segundos, y solo cuando cambia la emoción primaria, o la confianza se mueve al menos 0,05, o toca el latido de quince segundos (:612-624). Un seguidor con un resumen remoto fresco, ventana de frescura de 30 segundos y desfase de reloj corregido, pinta la lectura remota; el resto pinta la local (:645-653). Cuando existen ambas lecturas, son frescas y ambas tienen confianza de al menos 0,4, y discrepan, localDisagreesWithRemote pasa a verdadero para que la interfaz confiese la discrepancia en lugar de fingir consenso (:661-673).

Some things never change owner (:68-71): contributingSignals, unavailableSignals, detectedConfounders, baselineMaturity and latestObservedSignals are properties of this device, and the detail sheet labels them as such when the displayed reading is remote. The digest also deliberately does not transport the Hawkins range or the recommended Hz, because both are pure functions of the distribution, the confidence and the catalog, and the catalog is byte identical on both devices, so they are re derived locally with the same rules (:28-33).

Algunas cosas nunca cambian de dueño (:68-71): contributingSignals, unavailableSignals, detectedConfounders, baselineMaturity y latestObservedSignals son propiedades de este dispositivo, y la hoja de detalle las etiqueta así cuando la lectura mostrada es remota. El resumen tampoco transporta deliberadamente el rango Hawkins ni el Hz recomendado, porque ambos son funciones puras de la distribución, la confianza y el catálogo, y el catálogo es idéntico byte a byte en ambos dispositivos, así que se vuelven a derivar localmente con las mismas reglas (:28-33).

4.7 The polling discipline and the cadence

4.7 La disciplina de sondeo y la cadencia

The interface polls; nothing calls back. This is a stated house rule (MoodSessionCoordinator.swift:23-27, MoodStateViewModel.swift:6-10, AudioInterruptionCoordinator.swift:35-42). The Estado view runs its own 1 Hz loop inside a .task and calls MoodStateViewModel.tick(), which snapshots the coordinator's observable state into fields already shaped for rendering. The reason is that notifications and audio callbacks arrive on unspecified queues, and mutating observable state from an arbitrary thread is exactly the race the rest of the codebase avoids. One hertz is more than enough because the coordinator produces a result every five to fifteen seconds. The battery contract is bound to view lifecycle: begin on appear, end on disappear, and leaving the tab switches off every sensor (MoodStateViewModel.swift:12-16, :162-169).

La interfaz sondea; nada devuelve la llamada. Es una regla de la casa declarada (MoodSessionCoordinator.swift:23-27, MoodStateViewModel.swift:6-10, AudioInterruptionCoordinator.swift:35-42). La vista Estado ejecuta su propio bucle a 1 Hz dentro de un .task y llama a MoodStateViewModel.tick(), que toma una instantánea del estado observable del coordinador en campos ya preparados para renderizar. La razón es que las notificaciones y las devoluciones de llamada de audio llegan en colas no especificadas, y mutar estado observable desde un hilo arbitrario es exactamente la carrera que el resto del código evita. Un hercio es más que suficiente porque el coordinador produce un resultado cada cinco a quince segundos. El contrato de batería está ligado al ciclo de vida de la vista: comenzar al aparecer, terminar al desaparecer, y salir de la pestaña apaga todos los sensores (MoodStateViewModel.swift:12-16, :162-169).

The cadence itself is 5 seconds fast and 15 seconds slow (MoodSessionCoordinator.swift:112-114). The loop drops to slow when the primary emotion has been the same for three consecutive results and consecutive confidence deltas stay below 0.05 (:116-119, :838-856). Any change of primary emotion resets to fast immediately (:840-844). Because the smoother is cadence invariant, switching between five and fifteen seconds does not change the estimate's dynamics, only its power draw.

La cadencia es de 5 segundos en modo rápido y 15 en modo lento (MoodSessionCoordinator.swift:112-114). El bucle pasa a lento cuando la emoción primaria ha sido la misma durante tres resultados consecutivos y las variaciones consecutivas de confianza se mantienen por debajo de 0,05 (:116-119, :838-856). Cualquier cambio de emoción primaria vuelve a rápido de inmediato (:840-844). Como el suavizador es invariante a la cadencia, alternar entre cinco y quince segundos no cambia la dinámica de la estimación, solo su consumo.

5. Key engineering decisions

5. Decisiones de ingeniería clave

These eight are the decisions that would survive a hostile code review, and each is included for the reasoning behind it rather than for what it does. Read together they describe a codebase whose defining habit is to make the honest behaviour structurally unavoidable rather than merely documented. Three of them, the pure engine seam, the confidence clamp and the level versus hertz firewall, are also the three that most directly protect the company commercially.

Estas ocho son las decisiones que sobrevivirían a una revisión de código hostil, y cada una se incluye por el razonamiento detrás de ella más que por lo que hace. Leídas en conjunto describen una base de código cuyo hábito definitorio es hacer que el comportamiento honesto sea estructuralmente inevitable en lugar de meramente documentado. Tres de ellas, la costura del motor puro, el acotado de la confianza y el cortafuegos entre nivel y hercios, son además las tres que más directamente protegen a la compañía en lo comercial.

5.1 A pure, deterministic engine behind a protocol seam

5.1 Un motor puro y determinista tras una costura de protocolo

The protocol is one method: infer takes a MoodInferenceInput and returns a result and a new smoothing state (MoodInferenceEngine.swift:64-66). The input (:8-51) carries everything the inference needs, including the previous smoothing state and the caller's notion of now. The engine never calls Date(), never reads a store and never touches a singleton. State in, state out.

El protocolo es un solo método: infer recibe un MoodInferenceInput y devuelve un resultado y un nuevo estado de suavizado (MoodInferenceEngine.swift:64-66). La entrada (:8-51) lleva todo lo que la inferencia necesita, incluido el estado de suavizado previo y la noción de ahora del llamador. El motor nunca llama a Date(), nunca lee un almacén y nunca toca un singleton. Estado dentro, estado fuera.

This is the single most valuable structural decision in the codebase, for two reasons. First, it is what makes roughly four hundred pipeline tests possible at all: any sequence of evaluations reproduces exactly from fixed date anchors, byte for byte (:54-60). Second, it is the M3 insertion point. A CoreMLMoodInferenceModel conforming to the same protocol replaces the heuristic without touching a single caller, and the heuristic remains as the confidence gated fallback. The spec makes engine purity an invariant that survives the machine learning migration: the CoreML conformer must load its model up front and keep infer deterministic. Investors should read this as the machine learning risk being contained behind a seam that already exists and is already under test.

Esta es la decisión estructural más valiosa de la base de código, por dos razones. Primero, es lo que hace posibles unas cuatrocientas pruebas de pipeline: cualquier secuencia de evaluaciones se reproduce exactamente desde anclas de fecha fijas, byte a byte (:54-60). Segundo, es el punto de inserción de M3. Un CoreMLMoodInferenceModel que cumpla el mismo protocolo sustituye a la heurística sin tocar un solo llamador, y la heurística permanece como respaldo con compuerta de confianza. La especificación convierte la pureza del motor en un invariante que sobrevive a la migración a aprendizaje automático: el conformante de CoreML debe cargar su modelo por adelantado y mantener infer determinista. Un inversor debería leer esto como que el riesgo de aprendizaje automático está contenido tras una costura que ya existe y ya está bajo prueba.

5.2 Missing sensors degrade, they do not fail

5.2 Los sensores ausentes degradan, no rompen

canonicalSet(for:presentIDs:) (MoodInferenceEngine.swift:457-472) defines what it is fair to demand per operating mode. In combined mode, all 17 canonical signals. In watch only mode, minus the five phone only signals, voice valence and arousal, facial valence and arousal, and calendar density, because it is not fair to punish the Watch for lacking a prosody microphone. In iPhone only mode, minus the live cardio signals that are simply absent; if a historical HealthKit reading supplies them their quality is demanded, and if nothing does their absence is not penalised. In degraded mode, only what exists, because there is no device to demand anything from, and the humility comes from the mode itself by way of confidence.

canonicalSet(for:presentIDs:) (MoodInferenceEngine.swift:457-472) define qué es justo exigir en cada modo de operación. En modo combinado, las 17 señales canónicas. En modo solo reloj, menos las cinco señales exclusivas del teléfono, valencia y activación de voz, valencia y activación facial y densidad de agenda, porque no es justo castigar al reloj por no tener micrófono de prosodia. En modo solo iPhone, menos las señales cardio en vivo que simplemente no existen; si una lectura histórica de HealthKit las aporta se exige su calidad, y si nada lo hace su ausencia no se penaliza. En modo degradado, solo lo que existe, porque no hay dispositivo al que exigir nada, y la humildad proviene del propio modo a través de la confianza.

The invariant is that missing sensors degrade confidence and never break inference. The end to end suite pins it with named tests: testEmptyInputDegradesWithHumbleUncertainResult, testWatchOnlyOperationWorks and testConnectivityLossTransitionsToPhoneOnlyAndDropsConfidence (Tests/MoodEstimationEndToEndTests.swift:118, :55, :82).

El invariante es que los sensores ausentes degradan la confianza y nunca rompen la inferencia. La batería de pruebas de extremo a extremo lo fija con pruebas nombradas: testEmptyInputDegradesWithHumbleUncertainResult, testWatchOnlyOperationWorks y testConnectivityLossTransitionsToPhoneOnlyAndDropsConfidence (Tests/MoodEstimationEndToEndTests.swift:118, :55, :82).

5.3 Confidence clamped to 0.05 and 0.95, never certainty, never zero

5.3 Confianza acotada entre 0,05 y 0,95, nunca certeza, nunca cero

confidenceFloor = 0.05 and confidenceCeiling = 0.95 (MoodInferenceEngine.swift:128-129), applied at :272-282. The ceiling is a product promise: the system can never claim it knows. The floor matters too, because a zero would let the interface round to nought percent confident, which reads as a bug rather than as humility. A related floor is baselineMaturityConfidenceFloor = 0.3 (:134), which makes the maturity factor 0.3 plus 0.7 times maturity, so an immature baseline reduces confidence without annihilating it. Without that floor, the first two weeks of use would report about zero confidence even with impeccable sensors, and those two weeks are the entire first run experience.

confidenceFloor = 0.05 y confidenceCeiling = 0.95 (MoodInferenceEngine.swift:128-129), aplicados en :272-282. El techo es una promesa de producto: el sistema nunca puede afirmar que sabe. El suelo también importa, porque un cero permitiría a la interfaz redondear a cero por ciento de confianza, lo que se lee como error y no como humildad. Un suelo relacionado es baselineMaturityConfidenceFloor = 0.3 (:134), que hace que el factor de madurez sea 0,3 más 0,7 por la madurez, de modo que una línea base inmadura reduce la confianza sin aniquilarla. Sin ese suelo, las dos primeras semanas de uso reportarían confianza casi nula incluso con sensores impecables, y esas dos semanas son toda la experiencia de primer uso.

This clamp is well calibrated to the published evidence rather than being conservative theatre. The facial inference ceiling, the null result on slow breathing and mood, and the wrist heart rate variability validity limits documented in section 10 all sit comfortably inside it.

Este acotado está bien calibrado respecto a la evidencia publicada y no es teatro conservador. El techo de la inferencia facial, el resultado nulo sobre respiración lenta y estado de ánimo, y los límites de validez de la VFC en muñeca documentados en la sección 10 caben todos cómodamente dentro de él.

5.4 The physiology only valence bound of plus or minus 15 out of 100

5.4 El límite de valencia de solo fisiología, más o menos 15 sobre 100

physiologicalValenceCap = 15 (MoodDimensions.swift:180), applied at :384-389. When the only evidence for valence is the body, valence is clamped to plus or minus 15 out of a plus or minus 100 range. The reasoning is stated in the code: the body hints at valence, it does not assert it (:178-179). Heart rate speaks to arousal, not to whether the arousal is pleasant. This is the generalisation of an older, smaller decision: HealthMoodEstimator deliberately keeps the sad to joy and apathy to love axes inside 0.35 to 0.65, near neutral, precisely because those two axes have weak physiological support (Domain/HealthMoodEstimator.swift:62-67).

physiologicalValenceCap = 15 (MoodDimensions.swift:180), aplicado en :384-389. Cuando la única evidencia de valencia es el cuerpo, la valencia se acota a más o menos 15 sobre un rango de más o menos 100. El razonamiento está en el código: el cuerpo insinúa la valencia, no la afirma (:178-179). La frecuencia cardíaca habla de activación, no de si esa activación es agradable. Es la generalización de una decisión anterior y menor: HealthMoodEstimator mantiene deliberadamente los ejes de tristeza a alegría y de apatía a amor dentro de 0,35 a 0,65, cerca de lo neutro, precisamente porque esos dos ejes tienen apoyo fisiológico débil (Domain/HealthMoodEstimator.swift:62-67).

The bound is mirrored in the confidence formula. ValenceEvidence.confidenceFactor is 1.0 for a self report less than two hours old, 0.8 for voice or face, and 0.5 for physiology only (MoodDimensions.swift:17-24). The system pays for weak evidence twice, once in magnitude and once in confidence. That ordering is empirically correct, not merely cautious: the best powered smartphone and wearable study of depression and anxiety symptoms found that self reported valence, at r equal to minus 0.48, outperformed every passive sensor in the study127.

El límite se refleja en la fórmula de confianza. ValenceEvidence.confidenceFactor vale 1,0 para un autorreporte de menos de dos horas, 0,8 para voz o rostro y 0,5 para solo fisiología (MoodDimensions.swift:17-24). El sistema paga dos veces por la evidencia débil, una en magnitud y otra en confianza. Ese orden es empíricamente correcto y no meramente cauteloso: el estudio con más potencia sobre síntomas de depresión y ansiedad con teléfono y dispositivos vestibles halló que la valencia autorreportada, con r igual a menos 0,48, superó a todos los sensores pasivos del estudio127.

5.5 The firewall between the symbolic level and the audible hertz

5.5 El cortafuegos entre el nivel simbólico y el hercio audible

EmotionProfile holds a lower and an upper level bound and exposes consciousnessLevel as a closed range of integers. EmotionAudioProfile holds frequencyHz. They are two different structs in two different files, joined only by an emotion identifier string. The separation is enforced three ways: by the type system, because there is no field on EmotionProfile that an audio API would accept; by a test, Tests/EmotionCatalogTests.swift:80 testFrequencyIsNeverTheConceptualLevel, which asserts for all 17 emotions that the hertz value is not equal to the level; and by a documented invariant, that a Hawkins level is never a hertz value and frequencies come only from the catalog.

EmotionProfile guarda un límite inferior y uno superior de nivel y expone consciousnessLevel como un rango cerrado de enteros. EmotionAudioProfile guarda frequencyHz. Son dos structs distintas en dos archivos distintos, unidas solo por una cadena identificadora de emoción. La separación se aplica de tres maneras: por el sistema de tipos, porque no hay campo en EmotionProfile que una API de audio aceptaría; por una prueba, Tests/EmotionCatalogTests.swift:80 testFrequencyIsNeverTheConceptualLevel, que afirma para las 17 emociones que el valor en hercios no es igual al nivel; y por un invariante documentado, que un nivel Hawkins nunca es un valor en hercios y que las frecuencias salen solo del catálogo.

The trap this guards against is real and worth telling. The import CSV, tabla_de_niveles_de_conciencia.csv, has mislabelled headers: the column named frecuencia actually contains the conceptual level and the column named nivel contains the emotion name (EmotionProfile.swift:17-19). Rows are matched by name and level, never by column name, and that frecuencia value must never reach the audio engine. GlideCurve.swift:17-18 restates the boundary at the signal processing layer: it operates exclusively on audible hertz.

La trampa contra la que protege es real y vale la pena contarla. El CSV de importación, tabla_de_niveles_de_conciencia.csv, tiene los encabezados mal etiquetados: la columna llamada frecuencia contiene en realidad el nivel conceptual y la llamada nivel contiene el nombre de la emoción (EmotionProfile.swift:17-19). Las filas se emparejan por nombre y nivel, nunca por nombre de columna, y ese valor de frecuencia jamás debe llegar al motor de audio. GlideCurve.swift:17-18 reafirma el límite en la capa de procesamiento de señal: opera exclusivamente sobre hercios audibles.

5.6 The logarithmic glide, and why the render thread owns the clock

5.6 El deslizamiento logarítmico, y por qué el hilo de render es dueño del reloj

The curve is GlideCurve.frequency(fromHz:toHz:fraction:) equal to the origin times the ratio of target to origin raised to the fraction (Domain/GlideCurve.swift:29). At fraction zero it is the origin, at one it is the target, and at one half it is the geometric mean (:7-12). The result is a tone that moves at constant cents per second. A linear ramp in hertz would sound lopsided, spending most of its perceived motion at the low end. Tests/GlideCurveTests.swift:46 pins the property directly: equal time steps produce equal cent steps. Degenerate inputs fall back to linear rather than produce a not a number value on the audio thread (:23-27).

La curva es GlideCurve.frequency(fromHz:toHz:fraction:), igual al origen por la razón entre destino y origen elevada a la fracción (Domain/GlideCurve.swift:29). En fracción cero es el origen, en uno es el destino y en un medio es la media geométrica (:7-12). El resultado es un tono que se mueve a centésimas de semitono por segundo constantes. Una rampa lineal en hercios sonaría desequilibrada, gastando casi todo su movimiento percibido en la zona grave. Tests/GlideCurveTests.swift:46 fija la propiedad directamente: pasos de tiempo iguales producen pasos de centésimas iguales. Las entradas degeneradas caen a lineal en lugar de producir un valor no numérico en el hilo de audio (:23-27).

The clock is the interesting part. The journey's elapsed time is advanced inside the render callback: elapsed seconds increases by the frame count divided by the sample rate (ToneEngine.swift:595). The audio clock is the single source of truth for progress (:97, :585-587). The interface polls a progress value (:391-403, one lock acquisition producing a coherent snapshot) and therefore cannot drift out of sync with what is audible. Pausing freezes audio and time together, because the running flag is set false before the fade (:306); stopping cancels and holds the pitch reached, because cancelGlide writes the current hertz into the frequency before dropping the glide (:374-382). Finally, the log curve is evaluated twice per buffer, at the start and end frequency, and the phase increment is then ramped linearly across the frames between them (:610-619), so the phase itself never jumps, there are no clicks and no zipper noise, and the cost is two power operations per buffer instead of one per sample.

El reloj es la parte interesante. El tiempo transcurrido del viaje avanza dentro de la devolución de llamada de render: los segundos transcurridos aumentan en el número de fotogramas dividido por la frecuencia de muestreo (ToneEngine.swift:595). El reloj de audio es la única fuente de verdad del progreso (:97, :585-587). La interfaz sondea un valor de progreso (:391-403, una sola toma de cerrojo que produce una instantánea coherente) y por tanto no puede desincronizarse de lo que se oye. Pausar congela audio y tiempo a la vez, porque la bandera de ejecución se pone en falso antes del desvanecido (:306); detener cancela y mantiene el tono alcanzado, porque cancelGlide escribe los hercios actuales en la frecuencia antes de soltar el deslizamiento (:374-382). Por último, la curva logarítmica se evalúa dos veces por búfer, en la frecuencia inicial y final, y el incremento de fase se rampa entonces linealmente entre los fotogramas intermedios (:610-619), de modo que la fase nunca salta, no hay clics ni ruido de cremallera, y el costo son dos operaciones de potencia por búfer en vez de una por muestra.

Two related audio decisions worth noting. There is no fade state machine: a smoothed gain follows its target on every sample with an alpha derived from a time constant (ToneEngine.swift:642, :620), so every gain change is click free by construction, start, stop, pause, interruption and every Digital Crown detent, rather than only the paths someone remembered to fade. And Services/Audio/AmbientDSP.swift, 521 lines, synthesises ten ambient beds sample by sample with one pole filters and an xorshift32 generator, chosen because the system random number generator may take a lock. Nothing loops, ten ambiences cost zero megabytes of audio assets, and the transient banks are written out as fixed fields rather than arrays specifically so that nothing ever heap allocates on the audio thread (:387-394).

Dos decisiones de audio relacionadas dignas de mención. No hay máquina de estados de desvanecido: una ganancia suavizada sigue a su objetivo en cada muestra con un alfa derivado de una constante de tiempo (ToneEngine.swift:642, :620), de modo que todo cambio de ganancia es libre de clics por construcción, inicio, parada, pausa, interrupción y cada muesca de la Digital Crown, y no solo las rutas que alguien recordó desvanecer. Y Services/Audio/AmbientDSP.swift, 521 líneas, sintetiza diez bases ambientales muestra a muestra con filtros de un polo y un generador xorshift32, elegido porque el generador aleatorio del sistema puede tomar un cerrojo. Nada se repite en bucle, diez ambientes cuestan cero megabytes de recursos de audio, y los bancos de transitorios se escriben como campos fijos en lugar de arreglos precisamente para que nada reserve memoria dinámica en el hilo de audio (:387-394).

5.7 An interruption is a pause nobody asked for

5.7 Una interrupción es una pausa que nadie pidió

Services/Audio/AudioInterruptionCoordinator.swift, 305 lines. Everything, phone call, alarm, headphones unplugged, media services reset, routes through the same pause path that already existed: fade both planes, freeze the glide clock, suspend the ambient bed. There is no second state machine inside the engine. The engine exposes pauseForInterruption, resumeAfterInterruption and rebuildAfterMediaServicesReset (InterruptibleAudio, :63-73), and pauseForInterruption is literally a call to pause (ToneEngine.swift:749-751).

Services/Audio/AudioInterruptionCoordinator.swift, 305 líneas. Todo, llamada telefónica, alarma, auriculares desconectados, reinicio de servicios multimedia, pasa por la misma ruta de pausa que ya existía: desvanecer ambos planos, congelar el reloj del deslizamiento, suspender la base ambiental. No hay una segunda máquina de estados dentro del motor. El motor expone pauseForInterruption, resumeAfterInterruption y rebuildAfterMediaServicesReset (InterruptibleAudio, :63-73), y pauseForInterruption es literalmente una llamada a pause (ToneEngine.swift:749-751).

The full interruption policy table, from AudioInterruptionCoordinator.swift:171-210.Tabla completa de política de interrupciones, de AudioInterruptionCoordinator.swift:171-210.
EventEvento ConditionCondición ActionAcción
Interruption beganInterrupción iniciada anycualquiera suspend, fade out over 0.12 ssuspender, desvanecer en 0,12 s
Interruption endedInterrupción terminada options contain should resumelas opciones incluyen reanudar resume from the frozen point, fade in over 0.35 sreanudar desde el punto congelado, aparecer en 0,35 s
Interruption endedInterrupción terminada no should resume optionsin opción de reanudar stay pausedpermanecer en pausa
InterruptionInterrupción malformed user infoinformación de usuario malformada ignoredignorada
Route changeCambio de ruta old device unavailable, headphones removeddispositivo anterior no disponible, auriculares retirados suspend, with no automatic resume, which is the platform conventionsuspender, sin reanudación automática, que es la convención de la plataforma
Route changeCambio de ruta any other reasoncualquier otro motivo ignoredignorado
Media services were resetServicios multimedia reiniciados anycualquiera drop ownership, mark suspended, rebuild the graph lazily on the next start or resumesoltar la propiedad, marcar como suspendido y reconstruir el grafo de forma perezosa en el siguiente inicio o reanudación

Two subtleties show care. The suspend path guards on whether audio is actually playing (:215-219): if nothing was sounding, nothing is remembered, so a user's own pause can never be auto resumed by an unrelated interruption ended notification. And resumeIfOurs() requires both that the coordinator owns the suspension and that the reason is an interruption (:226-230), so a route loss never auto resumes even if an interruption ended notification arrives. The interface learns by polling at 2 Hz (:267), reading a generation counter that only advances when the reason or the suspension state actually changed (:236-244). The visible result is that after a phone call the screen says paused, with the reason, instead of lying that it is playing.

Dos sutilezas muestran cuidado. La ruta de suspensión comprueba si el audio está realmente sonando (:215-219): si nada sonaba, nada se recuerda, de modo que la pausa propia del usuario nunca puede reanudarse automáticamente por una notificación de fin de interrupción ajena. Y resumeIfOurs() exige a la vez que el coordinador sea dueño de la suspensión y que el motivo sea una interrupción (:226-230), de modo que una pérdida de ruta nunca se reanuda sola aunque llegue una notificación de fin de interrupción. La interfaz se entera sondeando a 2 Hz (:267), leyendo un contador de generación que solo avanza cuando el motivo o el estado de suspensión cambian de verdad (:236-244). El resultado visible es que tras una llamada la pantalla dice en pausa, con el motivo, en lugar de mentir diciendo que está reproduciendo.

5.8 Extended runtime and long form audio, redundant on purpose

5.8 Sesión de tiempo extendido y audio de formato largo, redundantes a propósito

This is the decision that best demonstrates the team has actually shipped on watchOS. Background audio on watchOS requires the long form audio route sharing policy, and that policy requires a Bluetooth route. AudioSessionConfigurator.activate() (Services/Audio/AudioSessionConfigurator.swift:99-108) therefore does the safe thing first: playback category with the default policy, synchronously, which is the only combination that guarantees the speaker in the foreground. Then, on watchOS only, it attempts a one shot upgrade to long form audio (:146-166) guarded four ways: mixing must be off, the attempt must not have happened yet this launch, the current route must already be Bluetooth, and the upgrade uses the asynchronous activation call because that is what earns the background assertion. On failure it reverts (:162-164).

Esta es la decisión que mejor demuestra que el equipo ha publicado de verdad en watchOS. El audio en segundo plano en watchOS requiere la política de ruta compartida de formato largo, y esa política requiere una ruta Bluetooth. Por eso AudioSessionConfigurator.activate() (Services/Audio/AudioSessionConfigurator.swift:99-108) hace primero lo seguro: categoría de reproducción con la política por defecto, de forma síncrona, que es la única combinación que garantiza el altavoz en primer plano. Después, solo en watchOS, intenta una mejora de una sola vez a formato largo (:146-166) protegida de cuatro maneras: la mezcla debe estar desactivada, el intento no debe haber ocurrido ya en este arranque, la ruta actual debe ser ya Bluetooth, y la mejora usa la llamada de activación asíncrona porque es la que otorga la aserción de segundo plano. Si falla, revierte (:162-164).

That covers AirPods. It does not cover the speaker, and the speaker is the common case. So Services/Session/ExtendedRuntimeService.swift opens a WKExtendedRuntimeSession for the whole audible session. The session type is never chosen in code: it comes from WKBackgroundModes: [audio, mindfulness] in project.yml:37, and mindfulness was chosen over self care because it grants one hour instead of ten minutes, and ten minutes is shorter than a twenty minute journey needs. The stated policy is the interesting part: do not guess the route, ask for both. With a Bluetooth route and a successful long form upgrade the two mechanisms are redundant but harmless. Guessing the route is exactly what caused the original speaker bug. A breathing session with physiology consent is in fact kept alive twice, by extended runtime and by HKWorkoutSession, by two different system arbiters that coexist without fighting.

Eso cubre los AirPods. No cubre el altavoz, y el altavoz es el caso común. Así que Services/Session/ExtendedRuntimeService.swift abre una WKExtendedRuntimeSession durante toda la sesión audible. El tipo de sesión nunca se elige en código: proviene de WKBackgroundModes: [audio, mindfulness] en project.yml:37, y se eligió mindfulness sobre self care porque concede una hora en lugar de diez minutos, y diez minutos es menos de lo que necesita un viaje de veinte. La política declarada es lo interesante: no adivinar la ruta, pedir ambas. Con una ruta Bluetooth y una mejora de formato largo exitosa los dos mecanismos son redundantes pero inofensivos. Adivinar la ruta es exactamente lo que causó el fallo original del altavoz. Una sesión de respiración con consentimiento fisiológico se mantiene de hecho viva dos veces, por el tiempo extendido y por HKWorkoutSession, mediante dos árbitros del sistema distintos que conviven sin pelearse.

The limits are documented honestly: the runtime session ends if the user deliberately leaves the app, and after the granted hour or a denied or expired outcome the app falls back to the previous behaviour, where only Bluetooth plus long form survives in the background. The state machine is a pure reducer, KeepAliveState.reduce(state:event:) (:105-123), deliberately placed outside the watchOS conditional block so it compiles and unit tests on iPhone (:99-104); Tests/ExtendedRuntimeLogicTests.swift covers it with 11 tests. Sessions are owner counted, closing only at zero (:190-228), and callbacks are guarded on session identity so a late callback from an abandoned session cannot overwrite new state (:284-289).

Los límites están documentados con honestidad: la sesión de tiempo extendido termina si el usuario abandona la app deliberadamente, y tras la hora concedida o un resultado denegado o expirado la app vuelve al comportamiento anterior, donde solo Bluetooth más formato largo sobrevive en segundo plano. La máquina de estados es un reductor puro, KeepAliveState.reduce(state:event:) (:105-123), situado deliberadamente fuera del bloque condicional de watchOS para que compile y se pruebe en iPhone (:99-104); Tests/ExtendedRuntimeLogicTests.swift lo cubre con 11 pruebas. Las sesiones llevan cuenta de propietarios y solo se cierran en cero (:190-228), y las devoluciones de llamada se protegen por identidad de sesión para que una llamada tardía de una sesión abandonada no pueda sobrescribir el estado nuevo (:284-289).

6. Privacy architecture

6. Arquitectura de privacidad

Seven consent groups, each individually revocable, with the app fully functional when all seven are denied. Raw audio and camera pixels never touch disk, and that is enforced by the type system rather than by policy. Nothing leaves the device except three payload kinds travelling between the user's own paired phone and watch. This is the part of the product where the strongest claims are also the most checkable, and it is the part that removes an entire class of privacy and data broker risk that peers in this category carry.

Siete grupos de consentimiento, revocables por separado, con la app plenamente funcional aunque los siete estén denegados. El audio en bruto y los píxeles de cámara nunca tocan el disco, y eso lo impone el sistema de tipos y no una política escrita. Nada sale del dispositivo salvo tres tipos de carga que viajan entre el teléfono y el reloj emparejados del propio usuario. Esta es la parte del producto donde las afirmaciones más fuertes son también las más comprobables, y es la parte que elimina toda una clase de riesgo de privacidad y de intermediarios de datos que arrastran otros productos de la categoría.

6.1 The seven group consent matrix, in full

6.1 La matriz completa de siete grupos de consentimiento

The complete consent matrix. Sources: Domain/MoodEstimation/SignalSource.swift:6-22, HealthMetricsService.readTypes(for:):205-217, MoodSessionCoordinator.signalSource(for:):749-760, and the shipped permission table in MOOD_ESTIMATION.md section 4.Matriz completa de consentimiento. Fuentes: Domain/MoodEstimation/SignalSource.swift:6-22, HealthMetricsService.readTypes(for:):205-217, MoodSessionCoordinator.signalSource(for:):749-760 y la tabla de permisos publicada en MOOD_ESTIMATION.md sección 4.
GroupGrupo System permissionPermiso del sistema Concrete scopeAlcance concreto When it is askedCuándo se pide Feature prefixes admittedPrefijos de señal admitidos If deniedSi se deniega
corePhysiology HealthKit read, plus workout share on the watch onlyLectura de HealthKit, más escritura de entrenamiento solo en el reloj 15 types: heart rate, resting heart rate, HRV SDNN, date of birth, respiratory rate, steps, active energy, exercise time, stand time, workouts, VO2max, heart rate recovery, walking heart rate, environmental audio exposure, headphone audio exposure15 tipos: frecuencia cardíaca, frecuencia en reposo, VFC SDNN, fecha de nacimiento, frecuencia respiratoria, pasos, energía activa, tiempo de ejercicio, tiempo de pie, entrenamientos, VO2max, recuperación de frecuencia cardíaca, frecuencia cardíaca al caminar, exposición a audio ambiental y exposición a audio con auriculares On enabling in Estado or the privacy dashboard, or on first finder useAl activarlo en Estado o en el panel de privacidad, o en el primer uso del buscador cardio., resp. Degraded mode; everything else keeps workingModo degradado; todo lo demás sigue funcionando
sleepRecovery HealthKit readLectura de HealthKit 2 types: sleep analysis and Apple sleeping wrist temperature2 tipos: análisis del sueño y temperatura de muñeca durante el sueño Toggle in the privacy dashboardInterruptor en el panel de privacidad sleep., temp. No sleep or temperature featuresSin señales de sueño ni temperatura
motion CoreMotion, system prompt on first useCoreMotion, aviso del sistema en el primer uso Accelerometer and gyroscope, plus activity classificationAcelerómetro y giroscopio, más clasificación de actividad First session with consentPrimera sesión con consentimiento activity., motion. No motion featuresSin señales de movimiento
voice MicrophoneMicrófono Local prosody only, with no speech recognition of any kindSolo prosodia local, sin ningún tipo de reconocimiento de voz Only when starting the voice check inSolo al iniciar el registro de voz voice. Check in unavailableRegistro no disponible
camera CameraCámara ARKit blendshape coefficients onlySolo coeficientes de blendshape de ARKit Only when starting the face check inSolo al iniciar el registro facial face. Check in unavailableRegistro no disponible
calendar EventKit full accessAcceso completo de EventKit Start, end and all day flag only. No titles, notes, attendees or locations.Solo inicio, fin y bandera de día completo. Sin títulos, notas, asistentes ni ubicaciones. Toggle in the privacy dashboardInterruptor en el panel de privacidad context.calendar No agenda contextSin contexto de agenda
location Location when in use, reduced accuracyUbicación en uso, precisión reducida Category of user labelled anchors. No coordinates in features.Categoría de anclajes etiquetados por el usuario. Sin coordenadas en las señales. Toggle in the privacy dashboardInterruptor en el panel de privacidad .locationCategory No place categorySin categoría de lugar

Permission free by design are the in app interaction metrics, prefix interaction., and temporal context such as whether it is a workday, the local hour of day and the minutes since the prior session. These use public APIs, concern this app only, and carry no sensitive datum (MoodSessionCoordinator.swift:765-768). Unknown feature families are dropped rather than admitted: isFeatureAllowed returns true only for explicitly permission free identifiers and for known families with granted consent, and anything else is discarded out of caution (:772-776).

Sin permiso por diseño están las métricas de interacción en la app, prefijo interaction., y el contexto temporal como si es día laborable, la hora local y los minutos desde la sesión anterior. Usan API públicas, atañen solo a esta app y no llevan ningún dato sensible (MoodSessionCoordinator.swift:765-768). Las familias de señales desconocidas se descartan en lugar de admitirse: isFeatureAllowed devuelve verdadero solo para identificadores explícitamente libres de permiso y para familias conocidas con consentimiento concedido, y cualquier otra cosa se descarta por precaución (:772-776).

Consent is tri state, not boolean: nil means never decided, false means explicitly denied and true means granted (SignalConsentStore.swift:17-19). The reader deliberately uses an object lookup cast to a number rather than the boolean accessor, because the latter cannot distinguish absent from denied, and that distinction is the entire point (:71-75). Everything is opt in and nothing self enables (:5-8). Consent gates twice: a provider whose consent is not true is never even turned on (MoodSessionCoordinator.swift:357-374), and every feature is filtered again before entering a packet, including features received from the remote device even though the sender already applied the synced consent (:76-81, :498, :520-533).

El consentimiento es de tres estados, no booleano: nulo significa nunca decidido, falso significa denegado explícitamente y verdadero significa concedido (SignalConsentStore.swift:17-19). El lector usa deliberadamente una consulta de objeto convertida a número en lugar del accesor booleano, porque este último no distingue ausente de denegado, y esa distinción es justamente lo importante (:71-75). Todo es de adhesión voluntaria y nada se activa solo (:5-8). El consentimiento actúa como compuerta dos veces: un proveedor cuyo consentimiento no sea verdadero ni siquiera se enciende (MoodSessionCoordinator.swift:357-374), y cada señal se filtra de nuevo antes de entrar en un paquete, incluidas las señales recibidas del dispositivo remoto aunque el emisor ya haya aplicado el consentimiento sincronizado (:76-81, :498, :520-533).

6.2 What is never persisted, verified rather than asserted

6.2 Lo que nunca se persiste, verificado y no solo afirmado

Voice. VoiceProsodyService.swift installs an audio engine tap whose closure body is a single call to the collector (:104-106). ProsodyFrameCollector.consume(_:) (:194-217) downmixes into a stack local array, hands it to the accumulator and returns; the array dies at return. The doc states it: no audio sample survives the call, nothing is queued, nothing is persisted (:187-188). Capture is torn down before processing begins (:133). What leaves the service is a finished state carrying an array of SensorFeature (:142). There is no Data, no AVAudioPCMBuffer and no file URL anywhere in the file, and no SFSpeechRecognizer. The structural guarantee is that ProsodyFrame, the one place the domain sees raw audio (ProsodyFeatureExtractor.swift:12-20), is not Codable. It therefore cannot be encoded into a packet even by mistake.

Voz. VoiceProsodyService.swift instala una derivación del motor de audio cuyo cuerpo de cierre es una sola llamada al recolector (:104-106). ProsodyFrameCollector.consume(_:) (:194-217) mezcla a mono en un arreglo local de pila, lo entrega al acumulador y retorna; el arreglo muere al retornar. La documentación lo dice: ninguna muestra de audio sobrevive a la llamada, nada se encola, nada se persiste (:187-188). La captura se desmonta antes de que empiece el procesamiento (:133). Lo que sale del servicio es un estado terminado con un arreglo de SensorFeature (:142). No hay Data, ni AVAudioPCMBuffer, ni URL de archivo en todo el archivo, ni SFSpeechRecognizer. La garantía estructural es que ProsodyFrame, el único lugar donde el dominio ve audio crudo (ProsodyFeatureExtractor.swift:12-20), no es Codable. Por tanto no puede codificarse en un paquete ni por error.

Face. FaceExpressionService.swift contains no reference to currentFrame, capturedImage, ARFrame or any pixel buffer type. The only data bearing delegate implemented extracts blendshape key and value pairs and nothing else (:149-163). Light estimation is disabled and tracking is limited to one face (:74-78). The camera is stopped (:98) before the state moves to processing (:99). BlendshapeSample is likewise not Codable (FaceExpressionAggregator.swift:15-27): the coefficients are numbers between zero and one, never pixels, and there is no field to put pixels in.

Rostro. FaceExpressionService.swift no contiene ninguna referencia a currentFrame, capturedImage, ARFrame ni a ningún tipo de búfer de píxeles. El único delegado portador de datos que se implementa extrae pares de clave y valor de blendshape y nada más (:149-163). La estimación de luz está desactivada y el seguimiento se limita a un rostro (:74-78). La cámara se detiene (:98) antes de que el estado pase a procesamiento (:99). BlendshapeSample tampoco es Codable (FaceExpressionAggregator.swift:15-27): los coeficientes son números entre cero y uno, nunca píxeles, y no hay campo donde poner píxeles.

Calendar. CalendarContextService.swift:71-74 is the only place an event object is visible, and it reads exactly three properties: start date, end date and the all day flag. No other property of the event is touched in the file. The carrier type CalendarMath.EventWindow (ContextFeatureMath.swift:20-30) has exactly those three fields and is structurally incapable of carrying a title (:10-12). The service documents the honest caveat: EventKit has no metadata only API, so full access must be requested, and the promise is kept by the mapping rather than by the permission.

Agenda. CalendarContextService.swift:71-74 es el único lugar donde un objeto de evento es visible, y lee exactamente tres propiedades: fecha de inicio, fecha de fin y bandera de día completo. Ninguna otra propiedad del evento se toca en el archivo. El tipo portador CalendarMath.EventWindow (ContextFeatureMath.swift:20-30) tiene exactamente esos tres campos y es estructuralmente incapaz de llevar un título (:10-12). El servicio documenta la salvedad honesta: EventKit no tiene una API de solo metadatos, así que hay que pedir acceso completo, y la promesa se cumple por el mapeo y no por el permiso.

Location. The location object is function local and is discarded in the same expression that produces the category (LocationContextService.swift:221-231). The emitted feature is a single location category with an ordinal from zero to five and a unit of category (ContextFeatureMath.swift:262-273). The one exception is disclosed rather than hidden: anchors the user creates themselves do store latitude and longitude in location-anchors.json (LocationContextService.swift:64-67). The file's own comment calls it the only persistence of coordinates in the whole system, and it is cleared by the erase path.

Ubicación. El objeto de ubicación es local a la función y se descarta en la misma expresión que produce la categoría (LocationContextService.swift:221-231). La señal emitida es una única categoría de lugar con un ordinal de cero a cinco y unidad de categoría (ContextFeatureMath.swift:262-273). La única excepción se declara en lugar de ocultarse: los anclajes que el propio usuario crea sí almacenan latitud y longitud en location-anchors.json (LocationContextService.swift:64-67). El comentario del propio archivo la llama la única persistencia de coordenadas de todo el sistema, y la ruta de borrado la elimina.

6.3 Where data does live

6.3 Dónde sí viven los datos

Six JSON files under Application Support slash NewMeHertz, one more on the iOS side, plus namespaced UserDefaults keys. Compiled from the store implementations.Seis archivos JSON bajo Application Support barra NewMeHertz, uno más en el lado de iOS, más claves de UserDefaults con espacio de nombres. Compilado a partir de las implementaciones de los almacenes.
File or storeArchivo o almacén ContentsContenido Atomic writeEscritura atómica CapTope Corruption behaviourComportamiento ante corrupción
personal-baseline.jsonone personal baselineuna línea base personalyesnoneningunoempty baselinelínea base vacía
mood-self-reports.jsonself reports plus correction biasesautorreportes más sesgos de correcciónyes500empty payloadcarga vacía
session-history.jsonemotion session recordsregistros de sesiones de emociónyes500empty historyhistorial vacío
breath-sessions.jsonbreath session recordsregistros de sesiones de respiraciónyes500emptyvacío
breath-learning.jsonone derived breath learning stateun estado derivado de aprendizaje respiratorioyesnoneningunoempty stateestado vacío
breath-safety-profile.jsonone breath safety profileun perfil de seguridad respiratoriayesnoneningunothe initial, most conservative state, in which advanced techniques are blockedel estado inicial, el más conservador, en el que las técnicas avanzadas quedan bloqueadas
location-anchors.jsonuser labelled anchors including coordinatesanclajes etiquetados por el usuario, con coordenadasyesnoneningunoemptyvacío
newmehertz.consent.*7 tri states plus an updated at epoch7 tri estados más una marca de actualizaciónnot applicableno aplicanoneningunoabsent means never decidedausente significa nunca decidido
newmehertz.*preferences: last emotion, gain, ambient bed, duration, pacing, disclaimer seenpreferencias: última emoción, ganancia, base ambiental, duración, ritmo y aviso vistonot applicableno aplicanoneningunounknown enum raw value becomes nilun valor bruto de enum desconocido pasa a nulo
newmehertz.hkanchor.*HealthKit query anchors, archived with secure codinganclas de consulta de HealthKit, archivadas con codificación seguranot applicableno aplicanoneningunonilnulo

Cross cutting patterns verified in every store: a lock around an in memory mirror so that reads never touch disk; a full file rewrite after every mutation; ISO 8601 dates; sorted key output formatting in five of the seven file stores so the files are byte deterministic and diffable; and an in memory double shipped alongside each store for tests. SwiftData was deliberately rejected: the real volume is a handful of preferences and a bounded session list, which do not justify a container or a migration story on a watch. Bounding the files at 500 records is what makes it legitimate to load them whole into memory. A corrupt or absent file degrades to empty, on the stated principle that a wellness record is not worth a launch failure.

Patrones transversales verificados en todos los almacenes: un cerrojo alrededor de un espejo en memoria para que las lecturas nunca toquen el disco; reescritura completa del archivo tras cada mutación; fechas ISO 8601; formato de salida con claves ordenadas en cinco de los siete almacenes de archivo para que sean deterministas byte a byte y comparables; y un doble en memoria enviado junto a cada almacén para las pruebas. SwiftData se rechazó deliberadamente: el volumen real son un puñado de preferencias y una lista acotada de sesiones, que no justifican un contenedor ni una historia de migración en un reloj. Acotar los archivos a 500 registros es lo que hace legítimo cargarlos enteros en memoria. Un archivo corrupto o ausente degrada a vacío, por el principio declarado de que un registro de bienestar no vale un fallo de arranque.

6.4 What erase all actually does

6.4 Qué hace realmente el borrado total

The entry point is the erase section of the privacy dashboard, then a confirmation dialog, then MoodStateViewModel.eraseAllData() (EmotionFrequencyiOS/Features/Estado/MoodStateViewModel.swift:316-328). Eight steps run in order.

El punto de entrada es la sección de borrado del panel de privacidad, luego un diálogo de confirmación y luego MoodStateViewModel.eraseAllData() (EmotionFrequencyiOS/Features/Estado/MoodStateViewModel.swift:316-328). Se ejecutan ocho pasos en orden.

  1. consent.resetAll() removes all seven consent keys (:317).consent.resetAll() elimina las siete claves de consentimiento (:317).
  2. baselineStore.clear() writes an empty personal baseline (:318).baselineStore.clear() escribe una línea base personal vacía (:318).
  3. selfReports.clear() empties both the reports and the correction biases (:319).selfReports.clear() vacía tanto los reportes como los sesgos de corrección (:319).
  4. locationAnchors.clear() empties the only coordinate store (:320).locationAnchors.clear() vacía el único almacén de coordenadas (:320).
  5. A loop removes every UserDefaults key prefixed with the HealthKit anchor namespace (:321-324).Un bucle elimina toda clave de UserDefaults con el prefijo del espacio de nombres de anclas de HealthKit (:321-324).
  6. mirrorConsents() publishes the now empty snapshot to the counterpart device (:325).mirrorConsents() publica la instantánea ahora vacía al dispositivo contrario (:325).
  7. end() stops the assessment and the activity classifier (:326).end() detiene la evaluación y el clasificador de actividad (:326).
  8. A task restarts the assessment, so the panel stays alive showing the honest degraded state; with consent revoked, no provider turns on (:327).Una tarea reinicia la evaluación, de modo que el panel sigue vivo mostrando el estado degradado honesto; con el consentimiento revocado, ningún proveedor se enciende (:327).

What it does not clear, verifiable by its absence from the method: session-history.json, breath-sessions.json, breath-learning.json, breath-safety-profile.json, the preference keys including the disclaimer seen flag, and the health onboarding seen flag. Two honest notes. First, the dialog copy is consistent with the narrower scope: it promises consents, personal baseline, self reports and labelled places, not session history. So this is a scope choice correctly described in the interface, and it is the summary in the project documentation that overstates it. This document therefore describes the feature as erasing the inference profile rather than erasing everything, and it is arguably the right product behaviour, since a user erasing their mood profile may not intend to delete two months of breathing practice. Second, eraseAllData() has no direct unit test.

Lo que no borra, verificable por su ausencia en el método: session-history.json, breath-sessions.json, breath-learning.json, breath-safety-profile.json, las claves de preferencias incluida la bandera de aviso visto, y la bandera de introducción de salud vista. Dos notas honestas. Primera, el texto del diálogo es coherente con el alcance más estrecho: promete consentimientos, línea base personal, autorreportes y lugares etiquetados, no el historial de sesiones. Así que es una decisión de alcance correctamente descrita en la interfaz, y es el resumen de la documentación del proyecto el que la exagera. Por eso este documento describe la función como borrado del perfil de inferencia y no como borrado de todo, y podría defenderse que es el comportamiento correcto de producto, ya que quien borra su perfil de ánimo puede no querer eliminar dos meses de práctica respiratoria. Segunda, eraseAllData() no tiene prueba unitaria directa.

One further discipline is worth recording: resetAll() iterates the known keys and never calls the persistent domain removal API, which would also destroy anything the system stores under the app (SignalConsentStore.swift:87-88). The same discipline appears in PreferencesStore.reset() (:88-92).

Merece registro una disciplina adicional: resetAll() recorre las claves conocidas y nunca llama a la API de eliminación del dominio persistente, que destruiría también cualquier cosa que el sistema guarde bajo la app (SignalConsentStore.swift:87-88). La misma disciplina aparece en PreferencesStore.reset() (:88-92).

6.5 The cross device boundary

6.5 La frontera entre dispositivos

Only three payload kinds ever leave a device, and only to the user's own paired device: a sensor feature packet carrying derived features and never raw samples; a breath sync payload of at most twenty records over deferred transport only; and a shared context, schema version 3, carrying consents, a compact baseline digest, the breath safety profile and a mood result digest. Plus the ping and pong of four time intervals. Nothing else crosses: no audio, no images, no coordinates, only location category ordinals inside the features, and no calendar titles.

Solo tres tipos de carga salen alguna vez de un dispositivo, y solo hacia el dispositivo emparejado del propio usuario: un paquete de señales sensoriales que lleva características derivadas y nunca muestras crudas; una carga de sincronización de respiración con como mucho veinte registros y solo por transporte diferido; y un contexto compartido, esquema versión 3, con consentimientos, un resumen compacto de línea base, el perfil de seguridad respiratoria y un resumen de resultado de ánimo. Más el ping y pong de cuatro intervalos de tiempo. Nada más cruza: ni audio, ni imágenes, ni coordenadas, solo ordinales de categoría de lugar dentro de las señales, y ningún título de agenda.

The user facing guarantees live in the privacy dashboard (:202-226) and are placed above the toggles so that they are read before consent is granted (:155-161): health data is not sold or shared; it is not used for advertising or profiling; it does not leave the device, because there are no servers, accounts or analytics; processing is local and everything is fully erasable. The watch carries a condensed mirror of the same text. Above those sits a panel explaining, one line per signal, what is read and what it is for: voice means the tone and rhythm of speech and never the content; facial expression means expression numbers and never images; calendar means only how loaded the day is; place means only the category of places the user labels themselves.

Las garantías de cara al usuario viven en el panel de privacidad (:202-226) y se colocan por encima de los interruptores para que se lean antes de conceder el consentimiento (:155-161): los datos de salud no se venden ni se comparten; no se usan para publicidad ni perfilado; no salen del dispositivo, porque no hay servidores, cuentas ni analítica; el procesamiento es local y todo es completamente borrable. El reloj lleva un espejo condensado del mismo texto. Encima hay un panel que explica, una línea por señal, qué se lee y para qué: voz significa el tono y el ritmo del habla y nunca el contenido; expresión facial significa números de expresión y nunca imágenes; agenda significa solo cuán cargado está el día; lugar significa solo la categoría de los lugares que el propio usuario etiqueta.

Turning a toggle off never touches the system permission (PrivacyDashboardView.swift:23-25). Only the app side consent is revoked, which is the correct behaviour: the app should not be able to manipulate system state on the user's behalf.

Apagar un interruptor nunca toca el permiso del sistema (PrivacyDashboardView.swift:23-25). Solo se revoca el consentimiento del lado de la app, que es el comportamiento correcto: la app no debería poder manipular el estado del sistema en nombre del usuario.

An asymmetry that must be disclosed. Consent mirroring is effectively iPhone authored and one directional. The update and apply routines are only invoked from the iOS side; the watch's own consent setter writes locally and requests HealthKit authorization but does not publish to the application context, and the watch never applies synced consents. A consent toggled on the watch therefore does not propagate to the phone. This is not a privacy hole, because the failure mode is a narrower grant rather than a wider one, but it is a user experience inconsistency and it is not documented in the project's own notes.

Una asimetría que debe declararse. El espejado de consentimientos es en la práctica autoría del iPhone y unidireccional. Las rutinas de actualización y aplicación solo se invocan desde el lado de iOS; el fijador de consentimiento del propio reloj escribe localmente y solicita autorización de HealthKit pero no publica al contexto de aplicación, y el reloj nunca aplica consentimientos sincronizados. Un consentimiento activado en el reloj, por tanto, no se propaga al teléfono. No es un agujero de privacidad, porque el modo de fallo es una concesión más estrecha y no más amplia, pero es una incoherencia de experiencia de usuario y no está documentada en las notas del proyecto.

6.6 Onboarding gates

6.6 Compuertas de introducción

Three gates, from the preferences store, the privacy dashboard and the compliance pass documentation.Tres compuertas, del almacén de preferencias, el panel de privacidad y la documentación del paso de cumplimiento.
GateCompuerta KeyClave Gates whatQué controla PlatformPlataforma
Wellness disclaimerAviso de bienestar hasSeenDisclaimer Entry to the app shell. It is not consent: there is no decline option, only an acknowledgement (WellnessDisclaimerView.swift:12-13).La entrada al armazón de la app. No es consentimiento: no hay opción de rechazar, solo un acuse (WellnessDisclaimerView.swift:12-13). both, five short paragraphs on the watchambas, cinco párrafos breves en el reloj
Health onboarding, four pagesIntroducción de salud, cuatro páginas newmehertz.sawHealthOnboarding The first HealthKit permission sheet, once per install.La primera hoja de permisos de HealthKit, una vez por instalación. iOS onlySolo iOS
Per source consent togglesInterruptores de consentimiento por fuente newmehertz.consent.* Provider activation and the system prompt.La activación del proveedor y el aviso del sistema. both, authored on the iPhoneambas, con autoría en el iPhone

The health onboarding's four pages are: a wellness estimate, not a diagnosis, breathing and frequencies with evidence levels versus symbolic framing, and privacy first. Both entry points that could trigger a first HealthKit sheet are closed: the health prefill chip and the privacy dashboard toggle for core physiology and sleep recovery park the source in a pending slot and fire the request only after the sheet finishes (PrivacyDashboardView.swift:309-312, :113-118). The onboarding is skippable, and skipping marks it seen, on the principle that the information was offered. Reduce Motion is honoured throughout.

Las cuatro páginas de la introducción de salud son: una estimación de bienestar, no es un diagnóstico, respiración y frecuencias con niveles de evidencia frente a encuadre simbólico, y privacidad primero. Los dos puntos de entrada que podrían disparar una primera hoja de HealthKit están cerrados: la ficha de prellenado de salud y el interruptor del panel de privacidad para fisiología básica y sueño aparcan la fuente en una ranura pendiente y disparan la solicitud solo cuando termina la hoja (PrivacyDashboardView.swift:309-312, :113-118). La introducción se puede omitir, y omitirla la marca como vista, por el principio de que la información se ofreció. Se respeta Reducir Movimiento en todo el flujo.

6.7 What changes at M2, when passive sensing arrives

6.7 Qué cambia en M2, cuando llegue la captación pasiva

Today the battery contract and the privacy contract are the same sentence: no sensor turns on outside an active assessment. M2 adds the HealthKit background delivery entitlement, observer queries and anchored queries with persisted anchors, scheduled background inference, a new coordinator mode with a documented battery contract change, passive consent user experience in the privacy dashboard, energy budget instrumentation and signal quality index surfacing. Two commitments hold across that change: raw audio and images still never touch disk, and voice and face remain explicit foreground check ins only and never passive; and every consent group stays individually revocable with the app functional when all are denied. The passive consent must be a separate opt in per group and not an implicit widening of the existing one. That is the commitment a reviewer will ask about, so it is stated here as a commitment.

Hoy el contrato de batería y el de privacidad son la misma frase: ningún sensor se enciende fuera de una evaluación activa. M2 añade el entitlement de entrega en segundo plano de HealthKit, consultas observadoras y ancladas con anclas persistidas, inferencia programada en segundo plano, un nuevo modo de coordinador con un cambio documentado del contrato de batería, la experiencia de consentimiento pasivo en el panel de privacidad, instrumentación de presupuesto energético y exposición del índice de calidad de señal. Dos compromisos se mantienen a lo largo de ese cambio: el audio y las imágenes en bruto siguen sin tocar nunca el disco, y voz y rostro siguen siendo registros explícitos en primer plano y jamás pasivos; y cada grupo de consentimiento sigue siendo revocable por separado con la app funcional cuando todos están denegados. El consentimiento pasivo debe ser una adhesión aparte por grupo y no un ensanchamiento implícito del existente. Ese es el compromiso por el que preguntará un revisor, y por eso se declara aquí como compromiso.

7. The breathing studio

7. El estudio de respiración

This is the largest single feature surface in the product, 28 iOS files plus 6 watchOS files plus 16 domain files totalling 4,556 lines plus 5 services, and it is where the scientifically supportable claims live. The frequency system is symbolic; the breathing system is not, and the product is careful to keep the two credibility pools separate. Fourteen techniques ship, each with a self declared evidence level, behind a safety gate that is more conservative than the published trials themselves used.

Es la mayor superficie funcional del producto, 28 archivos de iOS más 6 de watchOS más 16 archivos de dominio que suman 4.556 líneas más 5 servicios, y es donde viven las afirmaciones científicamente sostenibles. El sistema de frecuencias es simbólico; el de respiración no lo es, y el producto tiene cuidado de mantener separados los dos fondos de credibilidad. Se publican catorce técnicas, cada una con un nivel de evidencia autodeclarado, tras una compuerta de seguridad más conservadora que la que usaron los propios ensayos publicados.

7.1 The catalog, fourteen techniques, with the independently verified evidence tier

7.1 El catálogo, catorce técnicas, con el nivel de evidencia verificado de forma independiente

The table below places the app's own declared evidence level next to the tier independently verified against the primary literature, so that any divergence is visible rather than buried. Nine of the fourteen sit at preliminary or below on mood outcomes. That is not a defect specific to this product; it is the state of the breathwork literature.

La tabla siguiente coloca el nivel de evidencia declarado por la app junto al nivel verificado de forma independiente contra la literatura primaria, de modo que cualquier divergencia quede visible y no enterrada. Nueve de las catorce están en preliminar o por debajo en cuanto a resultados de ánimo. No es un defecto específico de este producto; es el estado de la literatura sobre trabajo respiratorio.

All 14 shipped techniques. Pattern and duration data from Resources/BreathingTechniques.json via BreathingTechniqueCatalog.swift (expectedCount = 14). Verified tier from the evidence dossier's per technique audit.Las 14 técnicas publicadas. Patrón y duraciones de Resources/BreathingTechniques.json a través de BreathingTechniqueCatalog.swift (expectedCount = 14). Nivel verificado según la auditoría por técnica del expediente de evidencia.
# Identifier and nameIdentificador y nombre Pattern, cyclePatrón, ciclo Min / default / max (s)Mín / def / máx (s) Category, difficultyCategoría, dificultad App declaresLa app declara Verified tierNivel verificado Honest one line noteNota honesta en una línea
1 physiological-sigh
Physiological sighSuspiro fisiológico
1.5 in, 1.0 second in, 6.0 out; 8.5 s, 7.06 breaths per minute1,5 inhalar, 1,0 segunda inhalación, 6,0 exhalar; 8,5 s, 7,06 respiraciones por minuto 60 / 300 / 600 calming, beginnercalmante, principiante documenteddocumentada MODERATEMODERADA One good 4 week randomised trial, 100 analysed, where cyclic sighing beat mindfulness meditation on positive affect. It did not significantly beat the other breathwork arms, and the sigh circuit mechanism paper is in mice.4344Un buen ensayo aleatorizado de 4 semanas, 100 analizados, donde el suspiro cíclico superó a la meditación de atención plena en afecto positivo. No superó significativamente a las otras ramas de respiración, y el artículo del circuito del suspiro es en ratones.4344
2 coherent-breathing
Coherent breathingRespiración coherente
5.0 / 5.0; 10 s, 6.0 breaths per minute5,0 / 5,0; 10 s, 6,0 respiraciones por minuto 120 / 300 / 900 balance, beginnerequilibrio, principiante documenteddocumentada STRONG for physiology, NULL versus placebo for moodFUERTE en fisiología, NULA frente a placebo en ánimo The cardiac vagal effect is the best established in the dossier, but the largest placebo controlled trial ever run on it, n equal to 400, found no mental health benefit over an active breathing placebo.3437El efecto vagal cardíaco es el mejor establecido del expediente, pero el mayor ensayo controlado con placebo jamás realizado sobre ella, n igual a 400, no halló beneficio en salud mental sobre un placebo respiratorio activo.3437
3 resonance-breathing
Resonance breathingRespiración de resonancia
5.5 / 5.5; 11 s, 5.45 breaths per minute5,5 / 5,5; 11 s, 5,45 respiraciones por minuto 180 / 600 / 1200 balance, intermediateequilibrio, intermedia documenteddocumentada STRONG for physiology, MODERATE for moodFUERTE en fisiología, MODERADA en ánimo Steffen 2017, n equal to 95, is a genuine positive mood result, but it is one 15 minute session with a positive affect scale only. You 2024 shows 5 to 7 cycles per minute are all effective, so 5.5 is defensible but not uniquely special.3235Steffen 2017, n igual a 95, es un resultado genuino de ánimo positivo, pero es una única sesión de 15 minutos con solo una escala de afecto positivo. You 2024 muestra que de 5 a 7 ciclos por minuto son todos eficaces, así que 5,5 es defendible pero no únicamente especial.3235
4 box-breathing
Box breathingRespiración en caja
4 in, hold 4, 4 out, hold 4; 16 s, 3.75 breaths per minute4 inhalar, 4 retener, 4 exhalar, 4 retener; 16 s, 3,75 respiraciones por minuto 60 / 240 / 600 focus, beginnerenfoque, principiante inferredinferida MODERATE at the weak endMODERADA en su extremo débil One three arm randomised trial, n equal to 66, found acute state anxiety and autonomic benefit, but both head to head comparisons found no mood or subjective advantage, and the box arm of Balban 2023 did not beat the meditation control.484647Un ensayo aleatorizado de tres brazos, n igual a 66, halló beneficio agudo en ansiedad estado y autonómico, pero ambas comparaciones directas no hallaron ventaja de ánimo ni subjetiva, y el brazo de caja de Balban 2023 no superó al control de meditación.484647
5 diaphragmatic
DiaphragmaticDiafragmática
4.0 in / 6.0 out; 10 s, 6.0 breaths per minute4,0 inhalar / 6,0 exhalar; 10 s, 6,0 respiraciones por minuto 120 / 300 / 900 calming, beginnercalmante, principiante documenteddocumentada PRELIMINARY. The app declares a higher level than the evidence supports.PRELIMINAR. La app declara un nivel superior al que la evidencia sostiene. The flagship study reduced negative affect and cortisol over 8 weeks, but it was quasi randomised by alternating registration order with a passive no treatment control, and n was about 39.45El estudio de referencia redujo el afecto negativo y el cortisol en 8 semanas, pero fue cuasi aleatorizado por orden alterno de registro con un control pasivo sin tratamiento, y n era de unos 39.45
6 four-seven-eight
4-7-84-7-8
4 in, hold 7, 8 out; 19 s, 3.16 breaths per minute4 inhalar, 7 retener, 8 exhalar; 19 s, 3,16 respiraciones por minuto 76 / 300 / 600 sleep, intermediatesueño, intermedia inferredinferida PRELIMINARYPRELIMINAR Two unblinded clinical trials with passive controls show anxiety benefit, but the best controlled healthy adult comparison, n equal to 84, found 4-7-8 underperformed plain 6 breaths per minute on HRV and produced no mood change.464950Dos ensayos clínicos sin enmascaramiento con controles pasivos muestran beneficio en ansiedad, pero la mejor comparación controlada en adultos sanos, n igual a 84, halló que 4-7-8 rindió peor que 6 respiraciones por minuto en VFC y no produjo cambio de ánimo.464950
7 extended-exhale
Extended exhaleExhalación prolongada
4.0 in / 8.0 out; 12 s, 5.0 breaths per minute4,0 inhalar / 8,0 exhalar; 12 s, 5,0 respiraciones por minuto 60 / 240 / 600 calming, beginnercalmante, principiante documenteddocumentada MODERATEMODERADA Four controlled studies find longer exhale raises vagal HRV, and one found it also feels more relaxing, but a 2024 crossover failed to replicate any inhale to exhale ratio effect at 6 breaths per minute, twice, and no study measured clinical anxiety.383940Cuatro estudios controlados hallan que la exhalación larga eleva la VFC vagal, y uno halló que además se siente más relajante, pero un ensayo cruzado de 2024 no logró replicar ningún efecto de la razón inhalación a exhalación a 6 respiraciones por minuto, dos veces, y ningún estudio midió ansiedad clínica.383940
8 five-finger
Five fingerCinco dedos
3.0 / 3.0 with hand tracing; 6 s, 10.0 breaths per minute3,0 / 3,0 con trazado de la mano; 6 s, 10,0 respiraciones por minuto 60 / 180 / 420 calming, beginnercalmante, principiante experimentalexperimental TRADITIONAL ONLYSOLO TRADICIÓN No controlled trial of any kind exists. PubMed does not index the technique, and the only journal appearance is a humanities column. The app's experimental label is accurate and should not be upgraded.63No existe ningún ensayo controlado de ningún tipo. PubMed no indexa la técnica y la única aparición en revista es una columna de humanidades. La etiqueta experimental de la app es correcta y no debe elevarse.63
9 relaxed-nasal
Relaxed nasalNasal relajada
4.0 / 4.0; 8 s, 7.5 breaths per minute4,0 / 4,0; 8 s, 7,5 respiraciones por minuto 60 / 300 / 900 balance, beginnerequilibrio, principiante inferredinferida PRELIMINARYPRELIMINAR One n equal to 20 acute crossover shows modest resting blood pressure and HRV shifts. The widely cited Zelano 2016 is a seven patient intracranial mechanism paper with no mood measure, and no human randomised trial of nasal versus mouth breathing on anxiety exists.6061Un ensayo cruzado agudo con n igual a 20 muestra cambios modestos en presión arterial en reposo y VFC. El muy citado Zelano 2016 es un artículo de mecanismo intracraneal con siete pacientes sin medida de ánimo, y no existe ningún ensayo aleatorizado humano de respiración nasal frente a bucal sobre ansiedad.6061
10 slow-nasal
Slow nasalNasal lenta
5.0 in / 7.0 out; 12 s, 5.0 breaths per minute5,0 inhalar / 7,0 exhalar; 12 s, 5,0 respiraciones por minuto 120 / 360 / 900 sleep, beginnersueño, principiante inferredinferida PRELIMINARYPRELIMINAR It inherits the slow breathing and longer exhale physiology. The nasal component itself has no mood evidence.6027Hereda la fisiología de la respiración lenta y de la exhalación larga. El componente nasal en sí no tiene evidencia sobre el ánimo.6027
11 pursed-lip
Pursed lipLabios fruncidos
2.0 in / 4.0 out; 6 s, 10.0 breaths per minute2,0 inhalar / 4,0 exhalar; 6 s, 10,0 respiraciones por minuto 60 / 180 / 480 calming, beginnercalmante, principiante documenteddocumentada STRONG for COPD breathlessness, NO mood evidenceFUERTE para la disnea en EPOC, SIN evidencia de ánimo A Cochrane review plus a dedicated meta analysis establish reduced minute ventilation and respiratory rate in COPD, but walking distance effects are inconsistent and neither review measured anxiety or mood at all. The app files it under calming.5152Una revisión Cochrane y un metaanálisis específico establecen reducción de la ventilación minuto y de la frecuencia respiratoria en EPOC, pero los efectos sobre la distancia de marcha son dispares y ninguna de las dos revisiones midió ansiedad ni ánimo. La app la clasifica como calmante.5152
12 bhramari-humming
Bhramari, hummingBhramari, zumbido
4.0 in / 8.0 out with a hum; 12 s, 5.0 breaths per minute4,0 inhalar / 8,0 exhalar con zumbido; 12 s, 5,0 respiraciones por minuto 60 / 240 / 600 balance, intermediateequilibrio, intermedia experimentalexperimental PRELIMINARYPRELIMINAR The 2017 systematic review states outright that none of the included studies were randomised. A 2025 pilot found no advantage of humming over plain slow breathing. The famous fifteen fold nasal nitric oxide finding is n equal to 10 physiology with zero clinical outcomes.535556La revisión sistemática de 2017 afirma sin rodeos que ninguno de los estudios incluidos fue aleatorizado. Un piloto de 2025 no halló ventaja del zumbido sobre la respiración lenta simple. El famoso hallazgo de óxido nítrico nasal quince veces mayor es fisiología con n igual a 10 y cero desenlaces clínicos.535556
13 wim-hof
Wim Hof methodMétodo Wim Hof
2.0 / 1.5 for 30 cycles, retention 60 s, recovery hold 15 s, 3 rounds; 3.5 s cycle, 17.1 breaths per minute. Hyperventilatory.2,0 / 1,5 durante 30 ciclos, retención 60 s, retención de recuperación 15 s, 3 rondas; ciclo de 3,5 s, 17,1 respiraciones por minuto. Hiperventilatoria. 540 fixed540 fijo energizing, advancedenergizante, avanzada experimentalexperimental MODERATE for immune physiology, NULL for moodMODERADA en fisiología inmune, NULA en ánimo Kox 2014 is real but measured no mood outcome whatsoever. The two randomised trials that did measure mental health, n equal to 200 placebo controlled and n equal to 84 versus an active control, both found no advantage over control. Nine percent of one intervention group reported light headedness, dizziness, sleepiness and tetany.646566Kox 2014 es real pero no midió ningún desenlace de ánimo. Los dos ensayos aleatorizados que sí midieron salud mental, n igual a 200 controlado con placebo y n igual a 84 frente a control activo, no hallaron ventaja sobre el control. El nueve por ciento de un grupo de intervención reportó aturdimiento, mareo, somnolencia y tetania.646566
14 bhastrika
Bhastrika, bellowsBhastrika, fuelle
round one 1.0 / 1.0 for 20, round two 4.0 / 6.0 for 3, 3 rounds; round one cycle 2.0 s, 30 breaths per minute. Hyperventilatory.ronda uno 1,0 / 1,0 por 20, ronda dos 4,0 / 6,0 por 3, 3 rondas; ciclo de ronda uno 2,0 s, 30 respiraciones por minuto. Hiperventilatoria. 210 fixed210 fijo energizing, advancedenergizante, avanzada experimentalexperimental PRELIMINARYPRELIMINAR One real 4 week randomised trial with anxiety, affect and imaging outcomes, n equal to 30, but the protocol bundled kapalabhati, asanas, bandhas and relaxation, so bhastrika is not isolated. The one positive blood pressure study used slow pace bhastrika at 6 breaths per minute, not the rapid form the app ships.575859Un ensayo aleatorizado real de 4 semanas con desenlaces de ansiedad, afecto e imagen cerebral, n igual a 30, pero el protocolo agrupaba kapalabhati, asanas, bandhas y relajación, de modo que la bhastrika no queda aislada. El único estudio positivo de presión arterial usó bhastrika de ritmo lento a 6 respiraciones por minuto, no la forma rápida que publica la app.575859

Distributions across the catalog: by evidence level, 6 documented, 4 inferred, 4 experimental, 0 symbolic. By category, 5 calming, 4 balance, 2 sleep, 2 energizing, 1 focus. By difficulty, 9 beginner, 3 intermediate, 2 advanced. Special flags: isHyperventilatory on exactly two, Wim Hof and Bhastrika; involvesLongHolds on exactly three, box, 4-7-8 and Wim Hof; and paceScalable false on exactly two, the advanced pair, whose minimum, default and maximum durations coincide.

Distribuciones del catálogo: por nivel de evidencia, 6 documentadas, 4 inferidas, 4 experimentales, 0 simbólicas. Por categoría, 5 calmantes, 4 de equilibrio, 2 de sueño, 2 energizantes, 1 de enfoque. Por dificultad, 9 de principiante, 3 intermedias, 2 avanzadas. Banderas especiales: isHyperventilatory en exactamente dos, Wim Hof y Bhastrika; involvesLongHolds en exactamente tres, caja, 4-7-8 y Wim Hof; y paceScalable en falso en exactamente dos, la pareja avanzada, cuyas duraciones mínima, por defecto y máxima coinciden.

The app's self declared levels are accurate in twelve of fourteen cases. The two divergences are diaphragmatic and pursed-lip, both declared documented. Pursed lip is genuinely well documented, but for COPD breathlessness rather than for mood, and the app files it under the calming category. Diaphragmatic rests on a quasi randomised study with a passive control. Both should be reviewed, and they appear in section 14 as findings.

Los niveles autodeclarados por la app son correctos en doce de catorce casos. Las dos divergencias son diaphragmatic y pursed-lip, ambas declaradas como documentadas. Labios fruncidos está genuinamente bien documentada, pero para la disnea en EPOC y no para el ánimo, y la app la clasifica en la categoría calmante. Diafragmática descansa en un estudio cuasi aleatorizado con control pasivo. Ambas deberían revisarse, y aparecen en la sección 14 como hallazgos.

The evidence enum is shared with the frequency system: FrequencyStep.EvidenceLevel (MoodStateResult.swift:50-55) has cases documented, inferred, experimental and symbolic. One vocabulary for how much is actually known, used for both breathing and hertz, and every frequency step is symbolic while no breathing technique is.

El enum de evidencia se comparte con el sistema de frecuencias: FrequencyStep.EvidenceLevel (MoodStateResult.swift:50-55) tiene los casos documentada, inferida, experimental y simbólica. Un solo vocabulario para cuánto se sabe realmente, usado tanto para respiración como para hercios, y todo paso de frecuencia es simbólico mientras que ninguna técnica respiratoria lo es.

7.2 Catalog validation: eleven throwing rules

7.2 Validación del catálogo: once reglas que lanzan error

Validation is aggressive and every rule is labelled (BreathingTechniqueCatalog.swift:87-201): exactly 14 techniques; unique non blank identifiers; non empty rounds with a repeat count of at least one; non empty phases with positive seconds; timed retention only on fixed count rounds; minimum less than or equal to default less than or equal to maximum, all positive; every reference identifier must be one of the four known references; emotional state tags non empty with every emotion tag in the 17 emotion set and every dimension tag in the five known dimensions; hyperventilatory implies difficulty must be advanced and all five severe contraindications must be declared; non blank name, description, science summary, contraindication note and benefits; and the five finger animation profile allowed only on the five finger technique. Tests/BreathingTechniqueCatalogTests.swift, 42 tests, includes a full negative path suite exercising every one of those eleven rules against deliberately malformed input (:455-606).

La validación es agresiva y cada regla está etiquetada (BreathingTechniqueCatalog.swift:87-201): exactamente 14 técnicas; identificadores únicos y no vacíos; rondas no vacías con un recuento de repetición de al menos uno; fases no vacías con segundos positivos; retención cronometrada solo en rondas de recuento fijo; mínimo menor o igual que el valor por defecto menor o igual que el máximo, todos positivos; todo identificador de referencia debe ser una de las cuatro referencias conocidas; etiquetas de estado emocional no vacías con toda etiqueta de emoción dentro del conjunto de 17 y toda etiqueta de dimensión dentro de las cinco conocidas; hiperventilatoria implica que la dificultad debe ser avanzada y que deben declararse las cinco contraindicaciones graves; nombre, descripción, resumen científico, nota de contraindicación y beneficios no vacíos; y el perfil de animación de cinco dedos permitido solo en la técnica de cinco dedos. Tests/BreathingTechniqueCatalogTests.swift, 42 pruebas, incluye una batería completa de caminos negativos que ejercita cada una de esas once reglas contra entradas deliberadamente malformadas (:455-606).

The in product citation list, Resources/BreathingReferences.json, holds four peer reviewed studies, Balban 2023 in Cell Reports Medicine, Lehrer 2014 in Frontiers in Psychology, Zaccaro 2018 in Frontiers in Human Neuroscience and Ma 2017 in Frontiers in Psychology, plus four education topics. The catalog refuses to load a technique citing an unknown reference. A countervailing strength worth recording: Tests/BreathingReferencesTests.swift asserts the year and the journal of each shipped citation. A codebase with unit tests pinning its bibliography is an unusual and genuinely positive diligence signal.

La lista de citas dentro del producto, Resources/BreathingReferences.json, contiene cuatro estudios revisados por pares, Balban 2023 en Cell Reports Medicine, Lehrer 2014 en Frontiers in Psychology, Zaccaro 2018 en Frontiers in Human Neuroscience y Ma 2017 en Frontiers in Psychology, más cuatro temas educativos. El catálogo se niega a cargar una técnica que cite una referencia desconocida. Una fortaleza compensatoria digna de registro: Tests/BreathingReferencesTests.swift afirma el año y la revista de cada cita publicada. Una base de código con pruebas unitarias que fijan su bibliografía es una señal de diligencia inusual y genuinamente positiva.

A citation weakness found during the audit. The Zaccaro 2018 reference is used as the sole reference for eight of the fourteen techniques, including two hyperventilatory ones, Wim Hof and Bhastrika, which are not slow breathing at all. Zaccaro 2018 is a fifteen study narrative review of generic slow breathing and is explicitly not a meta analysis, and its authors state that heterogeneity prevented pooling27. It cannot carry per technique claims for a hyperventilatory practice. This is finding F5 in section 14.

Una debilidad de citación hallada en la auditoría. La referencia Zaccaro 2018 se usa como única referencia de ocho de las catorce técnicas, incluidas dos hiperventilatorias, Wim Hof y Bhastrika, que no son en absoluto respiración lenta. Zaccaro 2018 es una revisión narrativa de quince estudios sobre respiración lenta genérica y explícitamente no es un metaanálisis, y sus autores afirman que la heterogeneidad impidió agrupar los resultados27. No puede sostener afirmaciones por técnica sobre una práctica hiperventilatoria. Este es el hallazgo F5 de la sección 14.

7.3 The phase engine

7.3 El motor de fases

Domain/Breathing/BreathPhaseEngine.swift, 479 lines, is a pure value type with no clock: it takes active elapsed seconds and returns a snapshot, and pause and resume bookkeeping belongs to the caller (:11-19). Its initialiser (:169-289) flattens the whole program into a segment array up front. Wim Hof, three rounds of thirty cycles plus retentions, becomes 186 segments (:23). Open ended rounds get the leftover time budget divided among them and truncate to the last complete cycle, so the session never ends mid exhale and always emits at least one cycle (:221-222). Retentions are not pace scaled (:227, :248-281): speeding up the breath does not shorten a sixty second breath hold.

Domain/Breathing/BreathPhaseEngine.swift, 479 líneas, es un tipo de valor puro sin reloj: recibe los segundos activos transcurridos y devuelve una instantánea, y la contabilidad de pausa y reanudación corresponde al llamador (:11-19). Su inicializador (:169-289) aplana todo el programa en un arreglo de segmentos por adelantado. Wim Hof, tres rondas de treinta ciclos más retenciones, se convierte en 186 segmentos (:23). Las rondas abiertas reciben el presupuesto de tiempo sobrante repartido entre ellas y se truncan al último ciclo completo, de modo que la sesión nunca termina a mitad de una exhalación y siempre emite al menos un ciclo (:221-222). Las retenciones no se escalan con el ritmo (:227, :248-281): acelerar la respiración no acorta una retención de sesenta segundos.

Two queries carry the design load. The boundaries query is half open, excluding the start and including the end (:365-383), so consecutive tick windows produce neither gaps nor duplicates, and the haptics depend on this exactly. The rescale query (:397-415) rebuilds at the new pace and returns the equivalent elapsed time, so a Digital Crown pace change preserves the current phase and progress with no animation jump; if the matching segment disappears, because a slower pace yields fewer open ended cycles, it returns the total duration and the session is treated as finished, never rewound. The pace scale range is 0.75 to 1.5 (:39), and a degenerate program yields a degenerate snapshot rather than a not a number value (:467-478).

Dos consultas soportan la carga del diseño. La consulta de fronteras es semiabierta, excluyendo el inicio e incluyendo el final (:365-383), de modo que ventanas de tick consecutivas no producen ni huecos ni duplicados, y los hápticos dependen exactamente de eso. La consulta de reescalado (:397-415) reconstruye al nuevo ritmo y devuelve el tiempo transcurrido equivalente, de modo que un cambio de ritmo con la Digital Crown conserva la fase y el progreso actuales sin salto de animación; si el segmento correspondiente desaparece, porque un ritmo más lento produce menos ciclos abiertos, devuelve la duración total y la sesión se trata como terminada, nunca rebobinada. El rango de escala de ritmo es 0,75 a 1,5 (:39), y un programa degenerado produce una instantánea degenerada en lugar de un valor no numérico (:467-478).

7.4 The safety gate

7.4 La compuerta de seguridad

Domain/Breathing/BreathSafetyGate.swift, 163 lines, is pure: traits, profile and a time in, a verdict out. The verdict is allowed, allowed with warning, or blocked, and blocked always wins: if any block reason exists, warnings are dropped (:155-161). Reasons are localisation keys and never embedded text, thirteen constants at :59-77.

Domain/Breathing/BreathSafetyGate.swift, 163 líneas, es puro: entran rasgos, perfil y un instante, y sale un veredicto. El veredicto es permitido, permitido con advertencia o bloqueado, y el bloqueo siempre gana: si existe cualquier motivo de bloqueo, las advertencias se descartan (:155-161). Los motivos son claves de localización y nunca texto incrustado, trece constantes en :59-77.

The five safety rules, from BreathSafetyGate.swift:83-162.Las cinco reglas de seguridad, de BreathSafetyGate.swift:83-162.
# ConditionCondición VerdictVeredicto
1 Hyperventilatory technique plus any declared severe condition: pregnancy, cardiovascular disease, hypertension, epilepsy, panic sensitivityTécnica hiperventilatoria más cualquier condición grave declarada: embarazo, enfermedad cardiovascular, hipertensión, epilepsia, sensibilidad al pánico BLOCK, with one distinct reason per condition (:93-109)BLOQUEO, con un motivo distinto por condición (:93-109)
2 Asthma or COPD declaredAsma o EPOC declarados Block if the technique is hyperventilatory; warn if it merely involves long holds (:113-126)Bloquear si la técnica es hiperventilatoria; advertir si solo implica retenciones largas (:113-126)
3 Recent surgery declaredCirugía reciente declarada Same shape as rule 2 (:129-135)La misma forma que la regla 2 (:129-135)
4 Advanced difficulty techniqueTécnica de dificultad avanzada Blocked unless the experience level is advanced, and then blocked again unless a fresh attestation exists within 30 days. The two cases use distinct keys so the interface can route to level up versus re attest (:141-147)Bloqueada salvo que el nivel de experiencia sea avanzado, y entonces bloqueada de nuevo salvo que exista una atestación vigente de menos de 30 días. Los dos casos usan claves distintas para que la interfaz pueda dirigir a subir de nivel o a volver a atestiguar (:141-147)
5 Every hyperventilatory startTodo inicio de una técnica hiperventilatoria Warn, every single time. The reason given in the code is the honest one: the app cannot detect that the person is driving, so a repeated reminder is the only truthful mechanism (:151-153, :72-77)Advertir, cada vez. La razón dada en el código es la honesta: la app no puede detectar que la persona esté conduciendo, así que un recordatorio repetido es el único mecanismo veraz (:151-153, :72-77)

The safety profile holds a set of declared contraindication tags, eight in total, pregnancy, asthma, COPD, cardiovascular, hypertension, recent surgery, epilepsy and panic sensitivity, plus an experience level, an advanced attestation date and an updated at date (:11-58). Contraindications are explicitly self declared and never inferred from sensors or history (:12-13), which is a deliberate refusal to guess at a medical condition. The attestation validity is 30 days (:40). The default profile is beginner with no attestation (:45-50), which means advanced techniques are blocked by default for every new user, and a corrupt profile file degrades to that same conservative state. Tests/BreathSafetyGateTests.swift has 40 tests.

El perfil de seguridad guarda un conjunto de etiquetas de contraindicación declaradas, ocho en total, embarazo, asma, EPOC, cardiovascular, hipertensión, cirugía reciente, epilepsia y sensibilidad al pánico, más un nivel de experiencia, una fecha de atestación avanzada y una fecha de actualización (:11-58). Las contraindicaciones son explícitamente autodeclaradas y jamás se infieren de sensores ni del historial (:12-13), lo que es una negativa deliberada a adivinar una condición médica. La validez de la atestación es de 30 días (:40). El perfil por defecto es principiante sin atestación (:45-50), lo que significa que las técnicas avanzadas están bloqueadas por defecto para todo usuario nuevo, y un archivo de perfil corrupto degrada a ese mismo estado conservador. Tests/BreathSafetyGateTests.swift tiene 40 pruebas.

This posture is more conservative than the published trials themselves used, and the literature justifies it. The verified evidence on coupled hyperventilation and breath holding is solid: a case series of sixteen New York State drowning outcomes found all four fatalities were advanced swimmers aged seventeen to twenty two who had intentionally hyperventilated68; a summary of fifty eight losses of consciousness during underwater swimming found roughly eighty percent occurred in guarded pools, with the interval from loss of consciousness to death as short as two and a half minutes69; and a 2025 review of 317 Australian breath hold fatalities attributes up to eleven percent to apnoeic hypoxia after extended breath holding, eight of them in swimming pools72. One gap remains: that literature supports a hard never in or near water instruction, and the best available randomised trial supplies directly quotable wording for it65, but the repository's contraindication notes end with a framing disclaimer rather than the water rule. This is finding F9 in section 14 and it is classified as a safety fix.

Esta postura es más conservadora que la que usaron los propios ensayos publicados, y la literatura la justifica. La evidencia verificada sobre la combinación de hiperventilación y apnea es sólida: una serie de dieciséis casos de ahogamiento en el estado de Nueva York halló que las cuatro muertes fueron nadadores avanzados de diecisiete a veintidós años que habían hiperventilado intencionadamente68; un resumen de cincuenta y ocho pérdidas de conciencia durante natación subacuática halló que alrededor del ochenta por ciento ocurrieron en piscinas vigiladas, con un intervalo desde la pérdida de conciencia hasta la muerte de tan solo dos minutos y medio69; y una revisión de 2025 de 317 muertes australianas en apnea atribuye hasta el once por ciento a hipoxia apneica tras retenciones prolongadas, ocho de ellas en piscinas72. Queda un hueco: esa literatura respalda una instrucción tajante de nunca practicar dentro ni cerca del agua, y el mejor ensayo aleatorizado disponible aporta redacción directamente citable65, pero las notas de contraindicación del repositorio terminan con un aviso de encuadre y no con la regla del agua. Este es el hallazgo F9 de la sección 14 y se clasifica como corrección de seguridad.

7.5 The recommendation engine

7.5 El motor de recomendación

Domain/Breathing/BreathRecommendationEngine.swift, 818 lines. Its inputs (:302-311) are an optional mood result, a time, a calendar, recent sessions, the learning state, the safety profile, session context flags and the catalog. The time and the calendar are injected; the engine never reads the system clock or timezone (:202-203). The context flags struct has exactly one flag, whether it is the bedtime window, derived by the caller from the local hour, deliberately outside the engine because bedtime is a product definition that may become configurable without touching the scoring (:10-11).

Domain/Breathing/BreathRecommendationEngine.swift, 818 líneas. Sus entradas (:302-311) son un resultado de ánimo opcional, un instante, un calendario, las sesiones recientes, el estado de aprendizaje, el perfil de seguridad, banderas de contexto de sesión y el catálogo. El instante y el calendario se inyectan; el motor nunca lee el reloj ni la zona horaria del sistema (:202-203). La estructura de banderas de contexto tiene exactamente una bandera, si estamos en la ventana de hora de dormir, derivada por el llamador a partir de la hora local, deliberadamente fuera del motor porque la hora de dormir es una definición de producto que puede volverse configurable sin tocar la puntuación (:10-11).

The pipeline (:328-405) runs safety first, evaluating the gate per technique, excluding blocked techniques with their reason keys while warned techniques still compete carrying their warnings. Then extra hyperventilation exclusions apply even when the gate allows: a stress index of 70 or above excludes them as hyperventilatory under stress, and otherwise the bedtime window excludes them as hyperventilatory at bedtime, because activating an already activated system, or activating right before sleep, is the exact opposite of what is needed (:141-146). Advanced techniques are never ranked (:362): if they pass the first two stages they are silently skipped, neither ranked nor listed as excluded, because nothing blocked them. That is a product decision, that advanced techniques are library only, chosen deliberately after education and attestation rather than because a card suggested them (:150-154). Finally the remainder is scored and sorted, with ties broken by a fixed category order then by identifier ascending, so the ranking is fully deterministic (:271-273).

El pipeline (:328-405) ejecuta primero la seguridad, evaluando la compuerta por técnica, excluyendo las bloqueadas con sus claves de motivo mientras que las advertidas siguen compitiendo con sus advertencias. Después se aplican exclusiones adicionales de hiperventilación aunque la compuerta lo permita: un índice de estrés de 70 o más las excluye por hiperventilatorias bajo estrés, y si no, la ventana de hora de dormir las excluye por hiperventilatorias antes de dormir, porque activar un sistema ya activado, o activarlo justo antes de dormir, es exactamente lo contrario de lo que se necesita (:141-146). Las técnicas avanzadas nunca se clasifican (:362): si pasan las dos primeras etapas se omiten en silencio, ni clasificadas ni listadas como excluidas, porque nada las bloqueó. Es una decisión de producto, que las técnicas avanzadas sean solo de biblioteca, elegidas deliberadamente tras educación y atestación y no porque una tarjeta las sugiriese (:150-154). Por último el resto se puntúa y se ordena, con empates resueltos por un orden fijo de categoría y luego por identificador ascendente, de modo que la clasificación es totalmente determinista (:271-273).

c        = mood == nil ? 0 : clamp(confidence, 0, 1);  if c < 0.3 then c = 0
matrix   = max over emotionalStateTags:
             emotion(id)        -> P(id) in {primary} union secondaries, else 0
             dimension(d,op,t)  -> satisfied ? 0.6 + 0.4*severity : 0
personal = (sessionCount >= 5 and median != nil) ? clamp(median/25, -1, 1) : 0
tod      = share of that technique's completed sessions in 28 d within one hour
           of now, only if that band has at least 3 sessions; else 0
variety  = technique NOT among the last 3 distinct used ? 1 : 0
recency  = same technique completed less than 3 h ago ? 1 : 0
frequent = that technique's share of all completed sessions in 28 d

score = 1.00*c*matrix + 0.50*personal + 0.15*tod + 0.10*variety
        - 0.20*recency + 0.10*(1-c)*frequent

Three things about that formula are worth highlighting. The mood term is gated by confidence: below 0.3 the matrix collapses to zero and the habit term's weight rises, since it carries a one minus c factor, and every ranked entry is annotated with a low mood confidence fallback reason so that the interface says so (:222, :394-398). The state to technique matrix does not exist as a table in code; it lives in the emotional state tags in the JSON, so adding a technique or retuning a threshold is a data edit rather than a recompile (:129-133). And recency is subtracted: repeating the same technique the same afternoon adds nothing (:216).

Tres cosas de esa fórmula merecen destacarse. El término de ánimo tiene compuerta de confianza: por debajo de 0,3 la matriz colapsa a cero y el peso del término de hábito sube, ya que lleva un factor de uno menos c, y toda entrada clasificada se anota con un motivo de recurso por baja confianza de ánimo para que la interfaz lo diga (:222, :394-398). La matriz de estado a técnica no existe como tabla en el código; vive en las etiquetas de estado emocional del JSON, de modo que añadir una técnica o reajustar un umbral es una edición de datos y no una recompilación (:129-133). Y la recencia se resta: repetir la misma técnica la misma tarde no aporta nada (:216).

The severity sub formula (:644-666) is 0.65 times specificity plus 0.35 times depth, and the code documents why depth alone was rejected: depth inverts specificity, since a stress value of 85 gives a threshold of 50 a depth of 0.70 but a threshold of 70 only 0.50, which sank the physiological sigh to sixth place (:630-643). That is a real tuning story with a real observed failure, which is exactly the kind of detail that convinces a skeptical engineer.

La subfórmula de severidad (:644-666) es 0,65 por la especificidad más 0,35 por la profundidad, y el código documenta por qué se rechazó la profundidad sola: la profundidad invierte la especificidad, ya que un valor de estrés de 85 da al umbral de 50 una profundidad de 0,70 pero al umbral de 70 solo 0,50, lo que hundió el suspiro fisiológico al sexto puesto (:630-643). Esa es una historia real de ajuste con un fallo real observado, que es exactamente el tipo de detalle que convence a un ingeniero escéptico.

Reason codes are an eight case enumeration (:25-47): emotion match, dimension trigger, personal effectiveness, fastest recovery, time of day fit, variety nudge, low mood confidence fallback and frequent choice. Reasons are emitted only for terms that contributed positively (:471-490), so a negative personal term lowers the score but is not listed, and they are ordered by contribution. Fastest recovery is annotated only on the technique with the lowest median recovery among those with at least five recovery samples, and only if it landed in the top two, because a claim that you recover fastest with this one on a fifth place card contradicts the ranking itself (:257-260). Exclusion reasons are exposed rather than hidden: the library shows blocked techniques greyed out with the reason, never removed, which is a product decision and not a security secret (:51-52). Tests/BreathRecommendationEngineTests.swift is the largest test file in the project, 47 tests over 896 lines, and includes a worked example pinned exactly: confidence 0.8, stress 85, arousal 50, fear at probability 0.6 and empty history yields a physiological sigh matrix of 0.852 and a score of 0.7816.

Los códigos de motivo son una enumeración de ocho casos (:25-47): coincidencia de emoción, disparo de dimensión, efectividad personal, recuperación más rápida, ajuste por hora del día, empuje de variedad, recurso por baja confianza de ánimo y elección frecuente. Los motivos se emiten solo para los términos que contribuyeron positivamente (:471-490), así que un término personal negativo baja la puntuación pero no se lista, y se ordenan por contribución. La recuperación más rápida solo se anota en la técnica con la mediana de recuperación más baja entre las que tienen al menos cinco muestras, y solo si quedó entre las dos primeras, porque afirmar que uno se recupera más rápido con esta en una tarjeta en quinta posición contradice la propia clasificación (:257-260). Los motivos de exclusión se exponen en lugar de ocultarse: la biblioteca muestra las técnicas bloqueadas atenuadas con el motivo, nunca eliminadas, lo que es una decisión de producto y no un secreto de seguridad (:51-52). Tests/BreathRecommendationEngineTests.swift es el archivo de pruebas más grande del proyecto, 47 pruebas en 896 líneas, e incluye un ejemplo resuelto fijado exactamente: confianza 0,8, estrés 85, activación 50, miedo con probabilidad 0,6 e historial vacío dan una matriz de suspiro fisiológico de 0,852 y una puntuación de 0,7816.

7.6 The before and after improvement score

7.6 La puntuación de mejora antes y después

Domain/Breathing/BreathImprovementScore.swift, 304 lines, produces a value from minus 100 to plus 100, or nothing at all.

Domain/Breathing/BreathImprovementScore.swift, 304 líneas, produce un valor de menos 100 a más 100, o bien nada en absoluto.

dS  = pre.stressIndex - post.stressIndex      weight 0.45
dA  = pre.arousal     - post.arousal          weight 0.25
dR  = pre.respRate    - post.respRate         weight 0.15
dHR = pre.hrMedian    - post.hrMedian         weight 0.15

zhat_i = clamp(d_i / noiseFloor_i, -4, +4)
w_i    = weight, RENORMALISED over the available channels
score  = clamp(25 * sum(w_i * zhat_i), -100, +100)

The scaling is exact by construction: with a z clamp of 4 and normalised weights the theoretical maximum is 25 times 4 equals 100, so the final clamp coincides precisely with z saturation and there is no dead zone (:76-80). The key idea is the noise floor. Deltas are divided by a per channel noise floor rather than used in absolute units, because dropping six beats per minute means one thing in someone whose pulse swings three beats between readings and something entirely different in someone who swings twelve (:5-13). The fixed design floors are 8 points of stress, 8 points of arousal, 1.5 breaths per minute and 3 beats per minute (:34-58). With at least eight historical samples in a channel, that channel's floor is replaced by the floored median absolute deviation of that person's own historical deltas, and the decision is per channel and never global: respiration may have history while heart rate does not (:99, :106-109, :116-144).

La escala es exacta por construcción: con un tope de z de 4 y pesos normalizados el máximo teórico es 25 por 4 igual a 100, de modo que el acotado final coincide exactamente con la saturación de z y no hay zona muerta (:76-80). La idea clave es el suelo de ruido. Las diferencias se dividen por un suelo de ruido por canal en lugar de usarse en unidades absolutas, porque bajar seis latidos por minuto significa una cosa en alguien cuyo pulso oscila tres latidos entre lecturas y algo totalmente distinto en alguien que oscila doce (:5-13). Los suelos fijos de diseño son 8 puntos de estrés, 8 puntos de activación, 1,5 respiraciones por minuto y 3 latidos por minuto (:34-58). Con al menos ocho muestras históricas en un canal, el suelo de ese canal se sustituye por la desviación absoluta mediana acotada de las diferencias históricas de esa misma persona, y la decisión es por canal y nunca global: la respiración puede tener historial mientras que la frecuencia cardíaca no (:99, :106-109, :116-144).

There are five rules under which the score returns nothing, and nothing explicitly means "I do not know" rather than "zero improvement" (:15-19, :176-195). One, either mood snapshot is missing, since stress is the anchor channel. Two, either snapshot's confidence is below 0.25, because subtracting two uncertainties does not create certainty. Three, the stress delta is unavailable: the 45 percent weight channel is mandatory, because without it the rest would renormalise from 55 percent to 100 percent and the score would change meaning. Four, fewer than two channels are available, because one channel is not an aggregate, it is that channel in disguise. Five, the post mood was captured before the settling window ended, because measuring immediately captures the effort of the practice, and Wim Hof raises the pulse, rather than its effect. There is also an availability rule that is not a nil rule: if the post physiology snapshot predates the settling end, the respiratory and heart rate channels are dropped and weights renormalise without them, rather than contaminating the score with a premature reading (:191-195, :241-252). The controller enforces a 75 second settling window (BreathGuidedSessionController.swift:127), deliberately above the score's 45 second minimum.

Hay cinco reglas bajo las cuales la puntuación no devuelve nada, y nada significa explícitamente "no lo sé" y no "cero mejora" (:15-19, :176-195). Uno, falta alguna de las dos instantáneas de ánimo, ya que el estrés es el canal ancla. Dos, la confianza de alguna instantánea está por debajo de 0,25, porque restar dos incertidumbres no crea certeza. Tres, la diferencia de estrés no está disponible: el canal con el 45 por ciento del peso es obligatorio, porque sin él el resto se renormalizaría del 55 al 100 por ciento y la puntuación cambiaría de significado. Cuatro, hay menos de dos canales disponibles, porque un canal no es un agregado, es ese canal disfrazado. Cinco, el ánimo posterior se capturó antes de que terminara la ventana de asentamiento, porque medir inmediatamente captura el esfuerzo de la práctica, y Wim Hof eleva el pulso, en lugar de su efecto. Hay además una regla de disponibilidad que no es una regla de nulidad: si la instantánea fisiológica posterior es anterior al fin del asentamiento, los canales respiratorio y cardíaco se descartan y los pesos se renormalizan sin ellos, en vez de contaminar la puntuación con una lectura prematura (:191-195, :241-252). El controlador impone una ventana de asentamiento de 75 segundos (BreathGuidedSessionController.swift:127), deliberadamente por encima del mínimo de 45 segundos de la puntuación.

The worked example lives in the doc comment (:162-174) and is pinned in Tests/BreathImprovementScoreTests.swift, 23 tests: four channels with fixed floors gives 51.96875, and the same case with only stress and heart rate renormalises to 0.75 and 0.25 and gives 54.6875.

El ejemplo resuelto vive en el comentario de documentación (:162-174) y está fijado en Tests/BreathImprovementScoreTests.swift, 23 pruebas: cuatro canales con suelos fijos dan 51,96875, y el mismo caso con solo estrés y frecuencia cardíaca renormaliza a 0,75 y 0,25 y da 54,6875.

7.7 The learning loop, the session controller and the visual layer

7.7 El bucle de aprendizaje, el controlador de sesión y la capa visual

BreathLearningEngine.swift, 539 lines, plus BreathLearningState.swift, 115 lines, keep per technique a session count, a completed count, a thirty sample improvement ring, an exponentially weighted average with alpha 0.3, a thirty sample ring of duration and improvement pairs, a derived optimal duration and a twenty sample recovery ring. The whole state is derived and never synced; each device rebuilds it from its own records. The detail that shows integrity is that the count of recommendations offered is incremented by the interface when a card is painted, never by the integration path. The reason is spelled out (:70-82): a recommendation that was shown and ignored produces no session record, so folding offers into the integration path would make the acceptance rate a fabricated one hundred percent. The success rate returns nothing below five offers (:93-96).

BreathLearningEngine.swift, 539 líneas, más BreathLearningState.swift, 115 líneas, guardan por técnica un recuento de sesiones, un recuento de completadas, un anillo de treinta muestras de mejora, una media exponencial con alfa 0,3, un anillo de treinta pares de duración y mejora, una duración óptima derivada y un anillo de veinte muestras de recuperación. Todo el estado es derivado y nunca se sincroniza; cada dispositivo lo reconstruye a partir de sus propios registros. El detalle que muestra integridad es que el recuento de recomendaciones ofrecidas lo incrementa la interfaz cuando se pinta una tarjeta, nunca la ruta de integración. La razón se explica (:70-82): una recomendación mostrada e ignorada no produce registro de sesión, así que plegar las ofertas en la ruta de integración haría que la tasa de aceptación fuera un cien por cien fabricado. La tasa de éxito no devuelve nada por debajo de cinco ofertas (:93-96).

The optimal duration routine (:300-325) requires at least five usable pairs, and the winning duration bucket must beat the overall median by more than one times the floored median absolute deviation of the whole sample; it then returns the median duration actually practised inside that bucket, a duration the person has really done rather than an interpolated ideal. Buckets are up to four minutes, four to eight, eight to twelve and above twelve, with at least five sessions per bucket. There are five insight kinds, each with a statistical gate rather than a threshold free assertion (:340-485): best technique, which needs at least two candidates with five samples each, and requires the leader's median to exceed one and a half times its own MAD and to beat the runner up by more than the larger of the two MADs; fastest recovery; optimal duration; respiratory improvement; and time of day pattern, which needs at least five morning and five rest of day samples. At most one insight per kind, truncated to four. An insight exists only if it passed the gate; there is no weak or tentative state.

La rutina de duración óptima (:300-325) exige al menos cinco pares utilizables, y el cubo de duración ganador debe superar la mediana global por más de una vez la desviación absoluta mediana acotada de toda la muestra; luego devuelve la mediana de la duración realmente practicada dentro de ese cubo, una duración que la persona sí ha hecho y no un ideal interpolado. Los cubos son hasta cuatro minutos, de cuatro a ocho, de ocho a doce y más de doce, con al menos cinco sesiones por cubo. Hay cinco tipos de hallazgo, cada uno con una compuerta estadística en lugar de una afirmación sin umbral (:340-485): mejor técnica, que necesita al menos dos candidatas con cinco muestras cada una y exige que la mediana de la líder supere una vez y media su propia MAD y que aventaje a la segunda por más que la mayor de las dos MAD; recuperación más rápida; duración óptima; mejora respiratoria; y patrón por hora del día, que necesita al menos cinco muestras de mañana y cinco del resto del día. Como mucho un hallazgo por tipo, truncado a cuatro. Un hallazgo existe solo si superó la compuerta; no hay estado débil ni tentativo.

The session controller, Services/Breathing/BreathGuidedSessionController.swift, 872 lines, is a main actor observable object with ten phases: idle, preparing, a three second countdown, breathing, paused, a 75 second settling, post capture, finished, and abandoned. It forces the pace scale to 1.0 when the technique is not pace scalable (:350); it opens its own mood assessment only if one is not already fresh and closes only what it opened (:360-365, :798-802); and it takes the extended runtime keep alive at countdown and releases it at post capture, with a deinitialiser safety net (:271-276, :813-823). Stopping early writes a record marked incomplete above thirty active seconds and writes nothing at all below that (:402-421). A later check in patches the persisted record and deliberately does not re integrate into learning, to avoid double counting (:468-480).

El controlador de sesión, Services/Breathing/BreathGuidedSessionController.swift, 872 líneas, es un objeto observable del actor principal con diez fases: inactivo, preparando, una cuenta atrás de tres segundos, respirando, en pausa, un asentamiento de 75 segundos, captura posterior, terminado y abandonado. Fuerza la escala de ritmo a 1,0 cuando la técnica no es escalable en ritmo (:350); abre su propia evaluación de ánimo solo si no hay ya una fresca y cierra solo lo que abrió (:360-365, :798-802); y toma el mantenimiento de tiempo extendido en la cuenta atrás y lo libera en la captura posterior, con una red de seguridad en el deinicializador (:271-276, :813-823). Detenerse pronto escribe un registro marcado como incompleto por encima de treinta segundos activos y no escribe nada por debajo de eso (:402-421). Un registro posterior parchea el registro persistido y deliberadamente no se reintegra al aprendizaje, para evitar el doble conteo (:468-480).

Notifications deserve a note because they are a good honesty example. Because there is no background sensing, only three notification sources can exist (BreathNotificationPlanner.swift:5-13): an observed practice hour, a user configured daily reminder and a streak nudge. Precedence is fixed, pattern then daily then streak, one entry per hour slot, with a colliding lower precedence entry dropped and never relocated, capped at three (:139-179). The recurring pattern requires at least five sessions and at least three scored samples with a strictly positive median in that hour bucket (:190-245). The service only ever removes requests with its own prefix, and the blanket removal API is explicitly never called (BreathNotificationService.swift:81-85, :299-307), while authorization is reachable only from an explicit settings action (:68-72). The compliance pass rewrote the copy from a claim about benefit to a claim about observed usage, because the planner knows usage patterns and not benefits.

Las notificaciones merecen una nota porque son un buen ejemplo de honestidad. Como no hay captación en segundo plano, solo pueden existir tres fuentes de notificación (BreathNotificationPlanner.swift:5-13): una hora de práctica observada, un recordatorio diario configurado por el usuario y un empuje de racha. La precedencia es fija, patrón, luego diario, luego racha, una entrada por franja horaria, descartando la entrada de menor precedencia que colisione en lugar de reubicarla, con tope de tres (:139-179). El patrón recurrente exige al menos cinco sesiones y al menos tres muestras puntuadas con mediana estrictamente positiva en ese cubo horario (:190-245). El servicio solo elimina solicitudes con su propio prefijo, y la API de eliminación masiva nunca se llama explícitamente (BreathNotificationService.swift:81-85, :299-307), mientras que la autorización solo es alcanzable desde una acción explícita de ajustes (:68-72). El paso de cumplimiento reescribió el texto de una afirmación sobre beneficio a una afirmación sobre uso observado, porque el planificador conoce patrones de uso y no beneficios.

The visual layer is genuinely differentiated and, importantly, shared rather than duplicated. SharedUI/Breathing/BreathOrbModel.swift, 524 lines, is a stateless, pure, SwiftUI free model in which every curve is designed to splice at phase boundaries, so a Crown pace change produces no jump (:12-18). Anchors are 0.92 empty, 1.00 neutral and 1.35 full scale; the physiological sigh's second inhale releases from 1.35 to 1.18 in the first quarter and then climbs back; a hold is 1.35 plus or minus 0.008 at 0.5 Hz; and the idle loop is ten seconds, that is six breaths per minute. Blob geometry uses eight control points with deliberately incommensurable periods so it never visibly repeats (:384), and the 36 particle seeds come from a fixed seed so the particle field is identical across devices (:444-457). Reduce Motion has a real path (:241-249), a static circle that keeps the opacity pulse and the phase label. Of the four visual styles, three are Metal shaders, and BreathShaderMapping.swift contains the nicest bit of restraint in the file: style speed is realised as a bounded phase lead and never as a time multiplier, because multiplying time by speed would jump the pattern by sixty nine radians at five minutes (:20-32). The watch orb is deliberately cheaper: two gradient layers at 30 frames per second, with no drawing group, no shadows and no blurs, targeting under 15 percent battery for a full session.

La capa visual está genuinamente diferenciada y, lo que importa, es compartida y no duplicada. SharedUI/Breathing/BreathOrbModel.swift, 524 líneas, es un modelo sin estado, puro y libre de SwiftUI en el que cada curva está diseñada para empalmar en las fronteras de fase, de modo que un cambio de ritmo con la corona no produce salto (:12-18). Los anclajes son 0,92 vacío, 1,00 neutro y 1,35 lleno; la segunda inhalación del suspiro fisiológico suelta de 1,35 a 1,18 en el primer cuarto y luego vuelve a subir; una retención es 1,35 más o menos 0,008 a 0,5 Hz; y el bucle en reposo es de diez segundos, es decir seis respiraciones por minuto. La geometría del blob usa ocho puntos de control con periodos deliberadamente inconmensurables para que nunca se repita de forma visible (:384), y las 36 semillas de partículas provienen de una semilla fija para que el campo de partículas sea idéntico entre dispositivos (:444-457). Reducir Movimiento tiene una ruta real (:241-249), un círculo estático que conserva el pulso de opacidad y la etiqueta de fase. De los cuatro estilos visuales, tres son sombreadores Metal, y BreathShaderMapping.swift contiene la mejor muestra de contención del archivo: la velocidad de estilo se realiza como un adelanto de fase acotado y nunca como un multiplicador de tiempo, porque multiplicar el tiempo por la velocidad saltaría el patrón sesenta y nueve radianes a los cinco minutos (:20-32). El orbe del reloj es deliberadamente más barato: dos capas de degradado a 30 fotogramas por segundo, sin grupo de dibujo, sin sombras y sin desenfoques, con objetivo de menos del 15 por ciento de batería en una sesión completa.

8. The frequency system

8. El sistema de frecuencias

Seventeen emotions, each with a conceptual level and a distinct audible frequency on a ladder from 285 Hz to 963 Hz. The values are not scientific measurements and Solfeggio frequencies have no demonstrated medical effect, a fact the product states on every surface that shows a hertz value. What is engineered here is not the claim but the containment: a symbolic layer that cannot leak into the audio engine, cannot emit a point estimate, cannot borrow the breathing literature's credibility, and cannot exceed a ceiling the team set deliberately.

Diecisiete emociones, cada una con un nivel conceptual y una frecuencia audible distinta en una escala de 285 Hz a 963 Hz. Los valores no son mediciones científicas y las frecuencias Solfeggio no tienen efecto médico demostrado, hecho que el producto declara en toda superficie que muestra un valor en hercios. Lo que aquí está diseñado no es la afirmación sino la contención: una capa simbólica que no puede filtrarse al motor de audio, no puede emitir una estimación puntual, no puede tomar prestada la credibilidad de la literatura de respiración y no puede superar un techo que el equipo fijó deliberadamente.

8.1 The 17 emotion catalog and the ladder

8.1 El catálogo de 17 emociones y la escala

All 17 catalog entries in catalog order, from Resources/EmotionCatalog.json read directly. The conceptual level and the audio frequency are two different fields on two different structs.Las 17 entradas del catálogo en orden de catálogo, leídas directamente de Resources/EmotionCatalog.json. El nivel conceptual y la frecuencia de audio son dos campos distintos en dos structs distintas.
# IdentifierIdentificador Name in the appNombre en la app Conceptual level, symbolicNivel conceptual, simbólico Audio frequencyFrecuencia de audio
1shameVergüenza20285 Hz
2guiltCulpa30316 Hz
3apathyApatía50348 Hz
4griefDuelo75372 Hz
5fearMiedo100396 Hz
6desireDeseo125406 Hz
7angerIra150417 Hz
8prideOrgullo175472 Hz
9courageCoraje200528 Hz
10neutralityNeutralidad250583 Hz
11willingnessVoluntad310639 Hz
12acceptanceAceptación350690 Hz
13reasonRazón400741 Hz
14loveAmor500796 Hz
15joyAlegría540852 Hz
16peacePaz600907 Hz
17enlightenmentIluminación700 to 1000963 Hz

Every emotion is a point level except enlightenment, which is the only range, and that is precisely why the Hawkins estimator must widen a point range with a neighbour. All 17 audio profiles share a sine waveform, a default gain of 0.5, a fade in of 1.0 second and a fade out of 0.3 seconds. The compliance pass added an experimental badge to the twelve surfaces that show a hertz value and prefixed every level with a symbolic level marker on eight surfaces, and added an explicit block distinguishing what is science backed from what is not to the references view, whose whole purpose is to stop the credibility of the breathing literature from leaking onto the frequency catalog. The project's own documentation names that leakage as the product's most concrete health claim risk.

Toda emoción es un nivel puntual salvo la iluminación, que es el único rango, y por eso precisamente el estimador Hawkins debe ensanchar un rango puntual con un vecino. Los 17 perfiles de audio comparten forma de onda sinusoidal, ganancia por defecto de 0,5, entrada de 1,0 segundo y salida de 0,3 segundos. El paso de cumplimiento añadió una insignia de experimental a las doce superficies que muestran un valor en hercios y antepuso a todo nivel un marcador de nivel simbólico en ocho superficies, y añadió a la vista de referencias un bloque explícito que distingue qué se apoya en ciencia y qué no, cuyo propósito entero es impedir que la credibilidad de la literatura de respiración se derrame sobre el catálogo de frecuencias. La propia documentación del proyecto señala ese derrame como el riesgo más concreto de afirmación de salud del producto.

8.2 Three properties are claimed; two are enforced by a test

8.2 Se reclaman tres propiedades; dos las impone una prueba

The uniqueness of the ladder is a design requirement rather than an aesthetic. The finder must be able to land on a different emotion for every point of the scale, and a journey needs a different origin and target frequency for every pair of emotions, since a repeated hertz value would produce a silent journey, a glide of zero cents, and finder results indistinguishable by ear. The whole range sits above 200 Hz, which is where the Watch speaker stops attenuating, and 174 Hz was replaced by its octave 348 Hz for exactly that reason.

La unicidad de la escala es un requisito de diseño y no una cuestión estética. El buscador debe poder aterrizar en una emoción distinta para cada punto de la escala, y un viaje necesita frecuencias de origen y destino distintas para cada par de emociones, ya que un valor de hercios repetido produciría un viaje silencioso, un deslizamiento de cero centésimas, y resultados del buscador indistinguibles al oído. Todo el rango está por encima de 200 Hz, que es donde el altavoz del reloj deja de atenuar, y 174 Hz se sustituyó por su octava 348 Hz exactamente por esa razón.

The honest statement is that two of the three properties are test enforced and the third holds in the data. The project's own architecture note claims a test blocks all three, ascending, unique and within 200 to 1000 Hz. The test in question, Tests/EmotionCatalogTests.swift:88-95, asserts that the frequency array equals its own sorted version and that each value lies between 200 and 1000. Equality with the sorted array is satisfied by a non strictly ascending sequence, so uniqueness is not asserted. Nor does the loader check it: EmotionCatalog.swift:41-72 validates unique identifiers, strictly ascending levels and a positive frequency, but nothing about hertz ordering or hertz uniqueness. The shipped data does satisfy all three properties, verified directly from the JSON: 285, 316, 348, 372, 396, 406, 417, 472, 528, 583, 639, 690, 741, 796, 852, 907 and 963 are strictly increasing and all distinct. This is therefore a guard gap and not a data defect, and the fix is one assertion line. Until it lands, the claim in any technical document must be worded as two of three.

La afirmación honesta es que dos de las tres propiedades están impuestas por una prueba y la tercera se cumple en los datos. La propia nota de arquitectura del proyecto afirma que una prueba bloquea las tres, ascendente, única y dentro de 200 a 1000 Hz. La prueba en cuestión, Tests/EmotionCatalogTests.swift:88-95, afirma que el arreglo de frecuencias es igual a su propia versión ordenada y que cada valor está entre 200 y 1000. La igualdad con el arreglo ordenado se satisface con una secuencia no estrictamente ascendente, así que la unicidad no se afirma. Tampoco la comprueba el cargador: EmotionCatalog.swift:41-72 valida identificadores únicos, niveles estrictamente ascendentes y frecuencia positiva, pero nada sobre el orden ni la unicidad de los hercios. Los datos publicados sí satisfacen las tres propiedades, verificado directamente sobre el JSON: 285, 316, 348, 372, 396, 406, 417, 472, 528, 583, 639, 690, 741, 796, 852, 907 y 963 son estrictamente crecientes y todos distintos. Se trata por tanto de un hueco de guarda y no de un defecto de datos, y la corrección es una línea de aserción. Hasta que llegue, la afirmación en cualquier documento técnico debe redactarse como dos de tres.

The catalog loader's six validations, for completeness (EmotionCatalog.swift:41-72): exactly 17 emotions; unique identifiers; strictly ascending lower level bounds; a non blank brief description for all 17, because the long press copy is part of the contract rather than optional; every emotion has an audio profile; and every frequency is positive.

Las seis validaciones del cargador del catálogo, para completar (EmotionCatalog.swift:41-72): exactamente 17 emociones; identificadores únicos; límites inferiores de nivel estrictamente ascendentes; una descripción breve no vacía para las 17, porque el texto de pulsación larga es parte del contrato y no opcional; toda emoción tiene perfil de audio; y toda frecuencia es positiva.

8.3 The frequency finder

8.3 El buscador de frecuencia

Domain/FrequencyFinder.swift, 109 lines, exposes four sliders in a significant order (:32-61): sad to joyful, fear to courage, tension to peace, and apathy to love. Each axis maps linearly onto the conceptual band from a floor of 20 to a ceiling of 600 (:24, :28), the four are averaged with explicit per axis weights, currently all equal but kept explicit so tuning is a one line change (:63-66), and the catalog entry whose level range midpoint is nearest wins, with ties breaking toward the lower level so the result is independent of catalog ordering (:98). Missing values default to the neutral midpoint, extra values are ignored, and every value is clamped (:71-82). The ceiling stops at Paz, level 600, on purpose: Iluminación, level 700 to 1000, is not something a slider should hand out (:26-27), and Tests/FrequencyFinderTests.swift:118 pins that the finder never resolves to it. The audible frequency still comes from the catalog's audio profile, never from the level computed here (:19-21).

Domain/FrequencyFinder.swift, 109 líneas, expone cuatro deslizadores en un orden significativo (:32-61): triste a alegre, miedo a valentía, tensión a paz, y apatía a amor. Cada eje se mapea linealmente a la banda conceptual desde un suelo de 20 hasta un techo de 600 (:24, :28), los cuatro se promedian con pesos explícitos por eje, hoy todos iguales pero mantenidos explícitos para que ajustarlos sea un cambio de una línea (:63-66), y gana la entrada del catálogo cuyo punto medio de rango de nivel esté más cerca, con empates resueltos hacia el nivel inferior para que el resultado sea independiente del orden del catálogo (:98). Los valores ausentes toman el punto medio neutro, los valores extra se ignoran y todos se acotan (:71-82). El techo se detiene en Paz, nivel 600, a propósito: Iluminación, nivel 700 a 1000, no es algo que un deslizador deba repartir (:26-27), y Tests/FrequencyFinderTests.swift:118 fija que el buscador nunca resuelve a ella. La frecuencia audible sigue viniendo del perfil de audio del catálogo, nunca del nivel calculado aquí (:19-21).

The health pre fill in Domain/HealthMoodEstimator.swift translates a health snapshot into suggested starting positions for those four sliders. Two normalised scores are computed: an arousal score from the latest heart rate over the resting heart rate, centred at a ratio of 1.10 rather than 1.00, because resting heart rate is the floor of the day and centring on 1.00 would report everyone as stressed (:36-38); and an HRV score from SDNN against an age modelled expected value. The two axes with weak physiological support are deliberately confined near neutral, between 0.35 and 0.65 (:62-67). An empty snapshot maps to exactly four neutral midpoints. The file's own header is the right framing to quote: this is a wellness heuristic, not medicine, and nothing here diagnoses, screens or measures anything; the output is a pre filled slider the user is expected to move (:6-13).

El prellenado de salud en Domain/HealthMoodEstimator.swift traduce una instantánea de salud en posiciones de partida sugeridas para esos cuatro deslizadores. Se calculan dos puntuaciones normalizadas: una de activación a partir de la última frecuencia cardíaca sobre la de reposo, centrada en una razón de 1,10 y no de 1,00, porque la frecuencia en reposo es el suelo del día y centrar en 1,00 reportaría a todo el mundo como estresado (:36-38); y una de VFC a partir del SDNN contra un valor esperado modelado por edad. Los dos ejes con apoyo fisiológico débil quedan deliberadamente confinados cerca de lo neutro, entre 0,35 y 0,65 (:62-67). Una instantánea vacía se mapea a exactamente cuatro puntos medios neutros. El encabezado del propio archivo es el encuadre correcto para citar: esto es una heurística de bienestar, no medicina, y nada aquí diagnostica, criba ni mide nada; la salida es un deslizador prellenado que se espera que el usuario mueva (:6-13).

The age model itself deserves a caveat. It produces about 48 milliseconds of expected SDNN at the default age of 40, which sits within the published short term SDNN range of 32 to 93 milliseconds reported by the standard overview of HRV metrics and norms11. The model is therefore plausible, but it is a product heuristic and not a published equation, and it should be labelled as such wherever it appears.

El propio modelo por edad merece una salvedad. Produce unos 48 milisegundos de SDNN esperado a la edad por defecto de 40 años, que cae dentro del rango publicado de SDNN de corto plazo de 32 a 93 milisegundos reportado por la revisión estándar de métricas y normas de VFC11. El modelo es por tanto plausible, pero es una heurística de producto y no una ecuación publicada, y debe etiquetarse así allá donde aparezca.

8.4 The Hawkins estimator, a range and never a point

8.4 El estimador Hawkins, un rango y nunca un punto

Domain/MoodEstimation/HawkinsEstimator.swift, 163 lines, applies gates in priority order (:57-67): cold start, meaning the smoother's 60 second window; then low confidence, meaning below 0.30; then no dominant emotion, meaning a top probability below 0.25. If none of those apply, it takes emotions in descending probability until the cumulative mass reaches 0.6, forms a range from the minimum lower bound to the maximum upper bound, and caps both ends at 600.

Domain/MoodEstimation/HawkinsEstimator.swift, 163 líneas, aplica compuertas en orden de prioridad (:57-67): arranque en frío, es decir la ventana de 60 segundos del suavizador; luego baja confianza, es decir por debajo de 0,30; luego ausencia de emoción dominante, es decir una probabilidad máxima por debajo de 0,25. Si ninguna se cumple, toma emociones en probabilidad descendente hasta que la masa acumulada alcanza 0,6, forma un rango desde el límite inferior mínimo hasta el superior máximo y acota ambos extremos a 600.

Then comes the honesty step. If the range collapsed to a point, which given that sixteen of seventeen emotions have point levels is the normal case, it is widened with the nearest catalog neighbour by midpoint, ties breaking downward, repeating until it is no longer a point (:125-140). A point value is thus structurally impossible (:80). The compliance pass verified this and needed no change: the domain is already incapable of emitting a point value. The header states the framing that must survive into any external document verbatim (:6-19): the Hawkins level is the NewMe Hertz project's symbolic framework, an ordinal map to orient the app's narrative, never a measured quantity. It does not diagnose, does not classify people and cannot be used to compare one user with another. The ceiling of 600 encodes the same prudence as the finder's: enlightenment is not estimated from sensors.

Luego viene el paso de honestidad. Si el rango colapsó a un punto, lo que dado que dieciséis de diecisiete emociones tienen niveles puntuales es el caso normal, se ensancha con el vecino de catálogo más próximo por punto medio, con empates hacia abajo, repitiendo hasta que deja de ser un punto (:125-140). Un valor puntual es así estructuralmente imposible (:80). El paso de cumplimiento lo verificó y no necesitó cambio: el dominio ya es incapaz de emitir un valor puntual. El encabezado enuncia el encuadre que debe sobrevivir literalmente a cualquier documento externo (:6-19): el nivel Hawkins es el marco simbólico del proyecto NewMe Hertz, un mapa ordinal para orientar la narrativa de la app, jamás una cantidad medida. No diagnostica, no clasifica personas y no puede usarse para comparar a un usuario con otro. El techo de 600 codifica la misma prudencia que el del buscador: la iluminación no se estima desde sensores.

8.5 The frequency sequence planner

8.5 El planificador de secuencias de frecuencia

Domain/MoodEstimation/FrequencySequencePlanner.swift, 283 lines, implements the product's central flow: capture where the user is, using sensors, sliders and check ins; let the user choose the destination; and build the bridge, accompanying first, advancing through catalog milestones with pacing caps under dysregulation, and honestly reporting a partial advance if the goal is too far. Its rules (:41-95) are as follows. Every hertz value comes from the catalog audio profile and never from a Hawkins level (:29-31). Every step is symbolic, because the choice of frequency is the symbolic mapping; durations reuse the documented safety bands, but the step's evidence field describes the frequency choice, so the honest rule is that any step with a catalog hertz value is symbolic (:32-37). Climb is rate limited and descent is not: the regulated maximum climb is four catalog positions, and with a stress index above 70 or an emotional readiness below 30 the session is planned as dysregulated and climbs at most one position, with a two minute stabilisation hold inserted at the origin frequency after pacing (:44-53, :125-151). Descending calms; it does not demand (:38-39).

Domain/MoodEstimation/FrequencySequencePlanner.swift, 283 líneas, implementa el flujo central del producto: capturar dónde está el usuario, con sensores, deslizadores y registros; dejar que el usuario elija el destino; y construir el puente, acompañando primero, avanzando por hitos del catálogo con topes de ritmo bajo desregulación, e informando con honestidad de un avance parcial si la meta está demasiado lejos. Sus reglas (:41-95) son las siguientes. Todo valor en hercios viene del perfil de audio del catálogo y nunca de un nivel Hawkins (:29-31). Todo paso es simbólico, porque la elección de frecuencia es el mapeo simbólico; las duraciones reutilizan las bandas de seguridad documentadas, pero el campo de evidencia del paso describe la elección de frecuencia, así que la regla honesta es que cualquier paso con un hercio de catálogo es simbólico (:32-37). La subida tiene límite de tasa y el descenso no: la subida máxima regulada es de cuatro posiciones de catálogo, y con un índice de estrés por encima de 70 o una disposición emocional por debajo de 30 la sesión se planifica como desregulada y sube como mucho una posición, con una retención de estabilización de dos minutos insertada en la frecuencia de origen tras el acompañamiento (:44-53, :125-151). Descender calma; no exige (:38-39).

The session always opens with three minutes of pacing at the origin frequency, accompanying before moving (:55). If the requested objective is farther than the pace limit allows, the plan advances partially and says so, setting a flag that the full objective is not reachable and an explanation key (:88-89). With no explicit objective, the default suggestion is the origin plus two positions, capped at Paz and never Iluminación (:64-66, :121). The final step gets one and a half shares of the divided time, because settling into the reached state deserves more than transiting it (:62). There are six step purposes, pacing, stabilisation, regulation, transition, consolidation and recovery, and a 45 second inter step glide (:59). The plan compiles to contiguous glide and hold segments for the existing gliding API (:232-251) and can also be expressed as an ordinary journey (:260-282) so that history and the interface need no special case. Tests/FrequencySequencePlannerTests.swift has 18 tests.

La sesión siempre abre con tres minutos de acompañamiento en la frecuencia de origen, acompañar antes de mover (:55). Si el objetivo solicitado está más lejos de lo que permite el límite de ritmo, el plan avanza parcialmente y lo dice, activando una bandera de que el objetivo completo no es alcanzable y una clave de explicación (:88-89). Sin objetivo explícito, la sugerencia por defecto es el origen más dos posiciones, con tope en Paz y jamás en Iluminación (:64-66, :121). El paso final recibe una parte y media del tiempo repartido, porque asentarse en el estado alcanzado merece más que transitarlo (:62). Hay seis propósitos de paso, acompañamiento, estabilización, regulación, transición, consolidación y recuperación, y un deslizamiento de 45 segundos entre pasos (:59). El plan se compila a segmentos contiguos de deslizamiento y retención para la API de deslizamiento existente (:232-251) y también puede expresarse como un viaje ordinario (:260-282) para que el historial y la interfaz no necesiten un caso especial. Tests/FrequencySequencePlannerTests.swift tiene 18 pruebas.

8.6 Journey duration bands and the counter intuitive safety property

8.6 Bandas de duración del viaje y la propiedad de seguridad contraintuitiva

Duration bands exposed by FrequencyJourney.suggestedMinutes(originLevel:) (:70-78), with the overall range fixed at 3 to 45 minutes (:47).Bandas de duración expuestas por FrequencyJourney.suggestedMinutes(originLevel:) (:70-78), con el rango global fijado en 3 a 45 minutos (:47).
Origin level, symbolicNivel de origen, simbólico Emotions in that bandEmociones de esa banda Session durationDuración de sesión Default the picker opens onValor por defecto del selector
20 to 75shame, guilt, apathy, griefvergüenza, culpa, apatía, duelo10 to 13 min12 min
100 to 150fear, desire, angermiedo, deseo, ira15 to 20 min18 min
175 to 250pride, courage, neutralityorgullo, coraje, neutralidad25 to 33 min29 min
310 to 400willingness, acceptance, reasonvoluntad, aceptación, razón33 to 45 min39 min
500 and abovelove, joy, peaceamor, alegría, paz45 min45 min

The counter intuitive safety property is the sentence worth putting on a slide: the lower the starting point, the shorter the session. Someone in apathy needs high contact frequency and low duration, not a forty five minute immersion. The source document is blunt about it, saying that this is counter intuitive for marketing and absolutely correct for the clinic. It is enforced as a monotonic property test, Tests/FrequencyJourneyTests.swift:110 testLowerStartingPointsNeverGetLongerSessions, plus band contiguity at :73 and range containment at :91. Levels below 20 clamp into the first band, so the function is total.

La propiedad de seguridad contraintuitiva es la frase que merece ir en una diapositiva: cuanto más bajo el punto de partida, más corta la sesión. Alguien en apatía necesita alta frecuencia de contacto y baja duración, no una inmersión de cuarenta y cinco minutos. El documento fuente es tajante al respecto: es contraintuitivo para el marketing y absolutamente correcto para la clínica. Se impone como prueba de propiedad monótona, Tests/FrequencyJourneyTests.swift:110 testLowerStartingPointsNeverGetLongerSessions, más contigüidad de bandas en :73 y contención de rango en :91. Los niveles por debajo de 20 se acotan a la primera banda, de modo que la función es total.

The forty five minute cap is a cross document derivation and a good example of the team reading its own sources against each other: one source document permits 45 to 60 minutes only for someone starting at level 500 or above and only under supervision, while another places 60 minutes as the total daily exposure with carryover. Sixty minutes in a single unsupervised session therefore leaves no margin, and the ceiling is set at 45.

El tope de cuarenta y cinco minutos es una derivación entre documentos y un buen ejemplo del equipo leyendo sus propias fuentes unas contra otras: un documento fuente permite de 45 a 60 minutos solo para quien parte del nivel 500 o superior y solo bajo supervisión, mientras que otro sitúa los 60 minutos como exposición diaria total con arrastre. Sesenta minutos en una sola sesión sin supervisión no dejarían margen, y por eso el techo se fija en 45.

A provenance problem found during the audit. Those source documents derive their duration bands from EEG and brainwave entrainment protocols. The five frequencies of that system are 0.1 Hz, an individual alpha frequency, 6 Hz, 1 Hz bilateral and 40 Hz, and the durations are tied to depth of theta access, sleep stage windows and gamma dosing. The shipped app contains no such stimulus: the tone engine generates a single sine carrier, and a search confirms there is no binaural, isochronic or beat frequency generation anywhere in the codebase. There is no entrainment mechanism for the duration table to be dosing. The durations themselves are harmless and arguably prudent, and the underlying principle is a sensible safety heuristic, so the recommended fix is to keep them and re label them as a product safety heuristic rather than a literature derived dose. This is finding F8 in section 14.

Un problema de procedencia hallado en la auditoría. Esos documentos fuente derivan sus bandas de duración de protocolos de arrastre de ondas cerebrales por EEG. Las cinco frecuencias de ese sistema son 0,1 Hz, una frecuencia alfa individual, 6 Hz, 1 Hz bilateral y 40 Hz, y las duraciones se atan a la profundidad de acceso a theta, a ventanas de fase del sueño y a dosificación gamma. La app publicada no contiene tal estímulo: el motor de tonos genera una única portadora sinusoidal, y una búsqueda confirma que no hay generación binaural, isocrónica ni de frecuencia de batido en ninguna parte del código. No hay mecanismo de arrastre alguno que la tabla de duraciones pudiera estar dosificando. Las duraciones en sí son inocuas y podría decirse que prudentes, y el principio subyacente es una heurística de seguridad sensata, así que la corrección recomendada es conservarlas y reetiquetarlas como heurística de seguridad de producto y no como dosis derivada de la literatura. Este es el hallazgo F8 de la sección 14.

8.7 The milestone presentation only rule, and the six presets

8.7 La regla de hitos solo de presentación, y los seis preajustes

A journey's milestones, meaning which emotions the tone is passing through, are computed from conceptual levels and interpolated linearly, because the scale is ordinal and not a pitch (FrequencyJourney.swift:156-191). They are presentation only and never reach the engine (:104-107). The audible side is entirely separate: origin hertz, target hertz, total cents and the frequency at a fraction all route through the glide curve (:139-152). This matters because the milestone track is the most visually prominent place a level number appears next to a running tone, and it is exactly where a level could accidentally be treated as a frequency.

Los hitos de un viaje, es decir por qué emociones va pasando el tono, se calculan a partir de niveles conceptuales e interpolados linealmente, porque la escala es ordinal y no un tono (FrequencyJourney.swift:156-191). Son solo de presentación y nunca llegan al motor (:104-107). El lado audible está completamente separado: hercios de origen, hercios de destino, centésimas totales y la frecuencia en una fracción pasan todos por la curva de deslizamiento (:139-152). Importa porque la pista de hitos es el lugar visualmente más prominente donde un número de nivel aparece junto a un tono sonando, y es exactamente donde un nivel podría tratarse accidentalmente como una frecuencia.

Six journey presets ship in Domain/JourneyRecommendation.swift: sleep, toward peace, 20 minutes, night ambience; study, toward reason, 25 minutes, river; relax, toward acceptance, 15 minutes, ocean; energy, toward joy, 10 minutes, wind; meditate, toward enlightenment, 20 minutes, brown noise; and before a meeting, toward courage, 5 minutes, no ambient bed. A preset fixes only destination, duration and ambient bed. The origin is deliberately absent, because the origin is the user's actual state (:10-13). Tests/JourneyRecommendationTests.swift has 9 tests.

Seis preajustes de viaje se publican en Domain/JourneyRecommendation.swift: dormir, hacia paz, 20 minutos, ambiente de noche; estudiar, hacia razón, 25 minutos, río; relajarse, hacia aceptación, 15 minutos, océano; energía, hacia alegría, 10 minutos, viento; meditar, hacia iluminación, 20 minutos, ruido marrón; y antes de una reunión, hacia coraje, 5 minutos, sin base ambiental. Un preajuste fija solo destino, duración y base ambiental. El origen está deliberadamente ausente, porque el origen es el estado real del usuario (:10-13). Tests/JourneyRecommendationTests.swift tiene 9 pruebas.

9. Quality engineering

9. Ingeniería de calidad

The original 2026-08-07 audit ran 1,265 watch tests in forty seconds. That figure is historical. As of 2026-08-20 the tree declares 2,356 watch tests and 364 iOS tests. M6-GATE on 2026-08-19 recorded both suites green on dedicated simulators. The inference core remains pure and deterministic. The remaining gaps, stated with the same directness: there is still no continuous integration, and there is still no privacy manifest.

La auditoría original del 2026-08-07 ejecutó 1.265 pruebas del reloj en cuarenta segundos. Esa cifra es histórica. Al 2026-08-20 el árbol declara 2.356 pruebas del reloj y 364 de iOS. M6-GATE el 2026-08-19 registró ambas baterías en verde en simuladores dedicados. El núcleo de inferencia sigue siendo puro y determinista. Los huecos que quedan, con la misma franqueza: sigue sin haber integración continua, y sigue sin haber manifiesto de privacidad.

9.1 The test count, measured

9.1 El recuento de pruebas, medido

# Counts from the tree on 2026-08-20 (this refresh did not re-run xcodebuild):
rg -c 'func test' Tests --glob '*.swift'     # 2356
rg -c 'func test' TestsiOS --glob '*.swift'  # 364

# Last signed run, M6-GATE 2026-08-19, CHANGELOG.md:
# watch 2356/2356 (0 skips) + iOS 364/364 on dedicated simulators

The 2026-08-07 run (1,265 watch tests, 39.95 s, Xcode 26.6) remains a valid historical measurement. It is no longer the size of the suite. This refresh counted func test declarations and quoted the signed M6-GATE result rather than inventing a wall time that was not re-measured here.

La ejecución del 2026-08-07 (1.265 pruebas del reloj, 39,95 s, Xcode 26.6) sigue siendo una medición histórica válida. Ya no es el tamaño de la batería. Este refresco contó declaraciones func test y citó el resultado firmado de M6-GATE en vez de inventar un tiempo de reloj que no se volvió a medir aquí.

PROJECT_STATUS G5 still said 1,251 baseline tests at the start of this refresh. That figure is the original v2.0 baseline and is being corrected to the current declaration count in the same change set. Section 14.1 keeps the 2026-08-07 discrepancy as history.

PROJECT_STATUS G5 seguía diciendo 1.251 pruebas de línea base al empezar este refresco. Esa cifra es la línea base original de v2.0 y se corrige al recuento actual de declaraciones en el mismo conjunto de cambios. La sección 14.1 conserva la discrepancia del 2026-08-07 como historia.

Testing measurements. Every figure was taken from the tree or from the verified test run described above.Mediciones de prueba. Cada cifra se tomó del árbol o de la ejecución de pruebas verificada descrita arriba.
MeasurementMedición ValueValor How measuredCómo se midió
Watch test declarationsDeclaraciones de prueba del reloj2,356grep of func test in Tests/búsqueda de func test en Tests/
iOS test declarationsDeclaraciones de prueba de iOS364grep of func test in TestsiOS/búsqueda de func test en TestsiOS/
Last signed failuresFallos en la última firma0M6-GATE 2026-08-19M6-GATE 2026-08-19
Historical 2026-08-07 wall timeTiempo de reloj histórico 2026-08-0739.95 soriginal audit run, 1,265 testsejecución original, 1.265 pruebas
Test filesArchivos de prueba166123 watch + 43 iOS *Tests.swift123 reloj + 43 iOS *Tests.swift
Assertion call sitesPuntos de aserción7,265grep of XCTAssert, 6,339 + 926búsqueda de XCTAssert, 6.339 + 926
Test linesLíneas de prueba53,712line count over Tests/ and TestsiOS/conteo de líneas sobre Tests/ y TestsiOS/
Production Swift linesLíneas Swift de producción95,118EmotionFrequencyWatch + EmotionFrequencyiOSEmotionFrequencyWatch + EmotionFrequencyiOS
Test to production line ratioRazón de líneas prueba a producción0.56computedcalculada
Hand rolled test doublesDobles de prueba escritos a mano16grep for fake, stub and spy classesbúsqueda de clases fake, stub y spy
Mocking frameworks usedFrameworks de simulación usados0grep for Mockingbird, Cuckoo, Quick, Nimble and swift testingbúsqueda de Mockingbird, Cuckoo, Quick, Nimble y swift testing
End to end pipeline scenariosEscenarios de pipeline de extremo a extremo20test function count in the end to end filerecuento de funciones de prueba del archivo de extremo a extremo
Largest test fileMayor archivo de pruebabreath recommendation engine, 47 tests, 896 linesmotor de recomendación respiratoria, 47 pruebas, 896 líneasgrep plus line countbúsqueda más conteo de líneas
Breathing test files and testsArchivos y pruebas de respiración21 files, 559 testsper file countsconteos por archivo

9.2 Test philosophy

9.2 Filosofía de prueba

Deterministic by construction. The rule throughout the domain layer is that no function calls the current date; the time is always a parameter. It is stated in the headers of the feature validator, the confounder detector, the dimension model, the smoother, the Hawkins estimator, the sequence planner, the breath recommendation engine and the improvement score, and it is enforced by the inference engine protocol itself. The calendar is injected too, so a timezone never leaks into a test. The payoff is two named tests, testDuplicatesAndOutOfOrderPacketsYieldByteIdenticalResults (Tests/MoodEstimationEndToEndTests.swift:253) and testPipelineIsHermetic (:424).

Determinista por construcción. La regla en toda la capa de dominio es que ninguna función consulta la fecha actual; el instante es siempre un parámetro. Se declara en los encabezados del validador de señales, el detector de confusores, el modelo de dimensiones, el suavizador, el estimador Hawkins, el planificador de secuencias, el motor de recomendación respiratoria y la puntuación de mejora, y lo impone el propio protocolo del motor de inferencia. El calendario también se inyecta, de modo que una zona horaria nunca se cuela en una prueba. El rédito son dos pruebas nombradas, testDuplicatesAndOutOfOrderPacketsYieldByteIdenticalResults (Tests/MoodEstimationEndToEndTests.swift:253) y testPipelineIsHermetic (:424).

Hand rolled fakes, no mocking framework. A grep for Mockingbird, Cuckoo, Quick, Nimble, mock annotations and swift testing across the test folder returns zero. Instead there are 16 hand written doubles, including fake tone and gliding tone engines, a fake sync service, fake extended health, live physiology and motion providers, a fake interruptible audio, spy engine, haptics, keep alive and tone objects, a haptic recorder and the in memory store doubles that ship in production code next to each file backed store. The protocol with default implementations pattern exists specifically so that adding a protocol member does not break every existing double.

Dobles escritos a mano, sin framework de simulación. Una búsqueda de Mockingbird, Cuckoo, Quick, Nimble, anotaciones de mock y swift testing en la carpeta de pruebas devuelve cero. En su lugar hay 16 dobles escritos a mano, incluidos motores de tono y de tono deslizante falsos, un servicio de sincronización falso, proveedores falsos de salud extendida, fisiología en vivo y movimiento, un audio interrumpible falso, objetos espía de motor, hápticos, mantenimiento y tono, un grabador de hápticos y los dobles de almacén en memoria que se publican en código de producción junto a cada almacén respaldado por archivo. El patrón de protocolo con implementaciones por defecto existe precisamente para que añadir un miembro al protocolo no rompa todos los dobles existentes.

Property tests, not just example tests. Notable ones are equal time steps producing equal cent steps (Tests/GlideCurveTests.swift:46), duration monotonicity (Tests/FrequencyJourneyTests.swift:110), blob amplitude never exceeding four percent of the radius (Tests/BreathOrbModelTests.swift:401), hertz never equalling the level (Tests/EmotionCatalogTests.swift:80) and six haptic events mapping to six distinct patterns (Tests/HapticVocabularyTests.swift:11).

Pruebas de propiedad, no solo de ejemplo. Las más notables son pasos de tiempo iguales que producen pasos de centésimas iguales (Tests/GlideCurveTests.swift:46), monotonía de duraciones (Tests/FrequencyJourneyTests.swift:110), amplitud del blob que nunca supera el cuatro por ciento del radio (Tests/BreathOrbModelTests.swift:401), hercios que nunca igualan al nivel (Tests/EmotionCatalogTests.swift:80) y seis eventos hápticos que se corresponden con seis patrones distintos (Tests/HapticVocabularyTests.swift:11).

Scenario coverage. The end to end file runs 20 named scenarios covering the four operating modes, connectivity loss, denied permissions, stale samples, an immature baseline, conflicting signals, exercise as a confounder, poor sensor contact, noisy voice, clock skew, duplicated and out of order packets, smoothing so that a single spike never flips the primary emotion, confidence reduction factor by factor, mixed states, user correction, data erasure and the level versus hertz invariant. That list maps almost one to one onto the claims the project documentation makes. Negative path suites go further: the breathing catalog test file exercises every one of the catalog's eleven validation rules against deliberately malformed input.

Cobertura de escenarios. El archivo de extremo a extremo ejecuta 20 escenarios nombrados que cubren los cuatro modos de operación, pérdida de conectividad, permisos denegados, muestras caducadas, línea base inmadura, señales en conflicto, ejercicio como confusor, mal contacto del sensor, voz ruidosa, desfase de reloj, paquetes duplicados y desordenados, suavizado de forma que un solo pico nunca invierta la emoción primaria, reducción de confianza factor a factor, estados mixtos, corrección del usuario, borrado de datos y el invariante de nivel frente a hercios. Esa lista se corresponde casi uno a uno con las afirmaciones de la documentación del proyecto. Las baterías de camino negativo van más allá: el archivo de pruebas del catálogo de respiración ejercita cada una de las once reglas de validación contra entradas deliberadamente malformadas.

Where the coverage is thin, stated rather than hidden. First, there is still no direct unit test of the tone engine render callbacks. That extraction strategy remains. Second, the erase path now has a direct iOS test (TestsiOS/EraseAllSyncTests.swift), including the personal-label store. Third, the iOS test target exists and is green. Fourth, there is still no continuous integration and still no privacy manifest. Hardware energy and ANE residency remain M5.

Dónde la cobertura es fina, declarado y no ocultado. Primero, sigue sin haber prueba unitaria directa de las devoluciones de llamada de render del motor de tonos. Esa estrategia de extracción se mantiene. Segundo, la ruta de borrado ya tiene una prueba iOS directa (TestsiOS/EraseAllSyncTests.swift), incluido el almacén de etiquetas personales. Tercero, el target de pruebas de iOS existe y está en verde. Cuarto, sigue sin haber integración continua y sigue sin haber manifiesto de privacidad. Energía en hardware y residencia ANE siguen siendo M5.

9.3 The verification gates

9.3 Las compuertas de verificación

Every milestone must clear eight gates, per the engine specification: build both targets, watchOS and iOS; run both test suites; zero regressions in the baseline suite; new code covered by deterministic tests; a copy audit for any new interface text against the compliance pass; a re run privacy checklist; an architect review comparing the implementation against the specification and the cited literature; and battery and thermal validation on hardware for milestones M2, M3 and M5. The project status document restates them as five checklists, validation, scientific, privacy, performance and App Store, each reviewed at every milestone. Gate seven is unusual and worth calling out: an explicit requirement that every new estimate be mapped, feature by feature, to cited literature, meaning a per module citation table rather than a general statement that some papers were read.

Cada hito debe superar ocho compuertas, según la especificación del motor: compilar ambos targets, watchOS e iOS; ejecutar ambas baterías de prueba; cero regresiones en la batería base; código nuevo cubierto por pruebas deterministas; una auditoría de textos de cualquier interfaz nueva contra el paso de cumplimiento; una lista de verificación de privacidad reejecutada; una revisión de arquitectura que compare la implementación con la especificación y con la literatura citada; y validación de batería y térmica en hardware para los hitos M2, M3 y M5. El documento de estado del proyecto las reformula como cinco listas de verificación, validación, científica, privacidad, rendimiento y App Store, revisadas en cada hito. La compuerta siete es inusual y merece mención: una exigencia explícita de que toda estimación nueva se mapee, señal por señal, a literatura citada, es decir una tabla de citas por módulo y no una afirmación general de que se leyeron algunos artículos.

9.4 Reproducible project generation, and the honest answer about continuous integration

9.4 Generación reproducible del proyecto, y la respuesta honesta sobre integración continua

The Xcode project file is generated from project.yml with XcodeGen, a development only tool installed through Homebrew and not a dependency of the app. Three concrete benefits are real: the project is reproducible from a text file, there are no project file merge conflicts, and adding a source file does not require opening Xcode. The project.yml is also where the non obvious platform facts are documented next to the setting they control: background modes have no build setting equivalent so they need a partial property list merged in, kept outside the source folders so it is never picked up as a bundle resource; the mindfulness runtime session type is declared there and never chosen in code; the watch bundle identifier prefix requirement is recorded as empirically verified; and the removed MusicKit entitlement carries restore instructions. That file is a good artefact to show an investor's engineer, because it reads like a set of decisions rather than a build configuration.

El archivo de proyecto de Xcode se genera a partir de project.yml con XcodeGen, una herramienta de desarrollo instalada con Homebrew y que no es dependencia de la app. Tres beneficios concretos son reales: el proyecto es reproducible desde un archivo de texto, no hay conflictos de fusión en el archivo de proyecto y añadir un archivo fuente no exige abrir Xcode. El project.yml es además donde se documentan los hechos no obvios de la plataforma junto al ajuste que controlan: los modos de segundo plano no tienen equivalente en ajustes de compilación así que necesitan una lista de propiedades parcial fusionada, mantenida fuera de las carpetas fuente para que nunca se recoja como recurso del paquete; el tipo de sesión de tiempo extendido mindfulness se declara ahí y nunca se elige en código; el requisito de prefijo del identificador de bundle del reloj se registra como verificado empíricamente; y el entitlement de MusicKit eliminado lleva instrucciones de restauración. Ese archivo es un buen artefacto para enseñar al ingeniero de un inversor, porque se lee como un conjunto de decisiones y no como una configuración de compilación.

There is still no continuous integration. There is no GitHub Actions directory, no GitLab configuration, no Makefile and no Fastlane setup. The repository now has hundreds of commits; testing is still run manually. Setting up continuous integration remains the cheapest remaining engineering gap after the privacy manifest.

Sigue sin haber integración continua. No hay directorio de GitHub Actions, ni configuración de GitLab, ni Makefile, ni instalación de Fastlane. El repositorio tiene ya cientos de commits; las pruebas se siguen ejecutando a mano. Montar integración continua sigue siendo el hueco de ingeniería más barato que queda, después del manifiesto de privacidad.

Related honest signals from the tree balance the picture. There are zero markers of the to do, fix me and hack varieties in the entire Swift tree, the three apparent hits being the Spanish word for all. There are zero forced try expressions in the domain layer. There are 36 protocols across 426 type declarations, so dependency inversion is used consistently rather than decoratively, with every platform service sitting behind a protocol that has both a null and an in memory implementation. Code signing is disabled for simulator builds and must be enabled with a team to deploy to hardware, a deliberate choice not to touch provisioning unnecessarily.

Otras señales honestas del árbol equilibran el cuadro. Hay cero marcadores del tipo por hacer, arréglame y apaño en todo el árbol Swift, siendo las tres aparentes coincidencias la palabra española todo. Hay cero expresiones de intento forzado en la capa de dominio. Hay 36 protocolos entre 426 declaraciones de tipo, así que la inversión de dependencias se usa de forma coherente y no decorativa, con cada servicio de plataforma tras un protocolo que tiene implementación nula y en memoria. La firma de código está desactivada para compilaciones de simulador y debe activarse con un equipo para desplegar en hardware, una elección deliberada de no tocar el aprovisionamiento sin necesidad.

9.5 Scale of the codebase

9.5 Escala de la base de código

Codebase measurements, all taken from the tree at commit 4dedd92 with the commands noted.Mediciones de la base de código, todas tomadas del árbol en el commit 4dedd92 con los comandos indicados.
MeasurementMedición ValueValor How measuredCómo se midió
Swift source files, excluding build outputArchivos fuente Swift, excluida la salida de compilación275file find plus countbúsqueda de archivos más conteo
Total Swift linesLíneas Swift totales79,546line count over the same setconteo de líneas sobre el mismo conjunto
Watch domain folderCarpeta de dominio del reloj50 files, 11,356 linesfind plus line countbúsqueda más conteo de líneas
Watch services folderCarpeta de servicios del reloj38 files, 10,887 linesidemídem
Watch features folderCarpeta de funcionalidades del reloj32 files, 6,260 linesidemídem
iOS features folderCarpeta de funcionalidades de iOS65 files, 20,492 linesidemídem
Shared interface folderCarpeta de interfaz compartida9 files, 2,464 linesidemídem
Type declarationsDeclaraciones de tipo426grep for class, struct, enum and actorbúsqueda de class, struct, enum y actor
Protocols declaredProtocolos declarados36grepbúsqueda
SwiftUI view structsStructs de vista de SwiftUI127grepbúsqueda
Sensor feature identifiers definedIdentificadores de señal definidos48grep over the sensor feature file, across 9 familiesbúsqueda sobre el archivo de señales, en 9 familias
Apple frameworks importedFrameworks de Apple importados19deduplicated import grep, all first partybúsqueda de imports sin duplicados, todos de Apple
Third party packagesPaquetes de terceros0no SPM, no CocoaPods, no Carthagesin SPM, sin CocoaPods, sin Carthage
Networking API call sitesPuntos de llamada a API de red0grep across all Swiftbúsqueda en todo el Swift
Analytics, crash and tracking SDKsSDK de analítica, crashes y rastreo0grep for 10 named SDKs plus tracking APIsbúsqueda de 10 SDK nombrados más API de rastreo
Entitlements per targetEntitlements por target1both entitlement files, HealthKit onlyambos archivos de entitlements, solo HealthKit
JSON data resourcesRecursos de datos JSON3emotion catalog 11 KB, breathing techniques 34 KB, breathing references 12 KBcatálogo de emociones 11 KB, técnicas de respiración 34 KB, referencias de respiración 12 KB
Continuous integration configurationConfiguración de integración continua0repository scanescaneo del repositorio
Git historyHistorial de Git1 commitgit log, plus 4 empty feature branchesgit log, más 4 ramas de funcionalidad vacías

10. Scientific basis and the real accuracy ceilings

10. Base científica y los techos reales de exactitud

This section exists so that nobody has to take the product's confidence figures on trust. It states what the app computes, from which signals, and at what evidence tier; then it gives the published accuracy ceilings for every category the product touches. The numbers are unflattering to the whole field, not to this product specifically, and that is exactly why they belong here. The single most important conclusion is that the app's confidence clamp of 0.05 to 0.95, and its ordering of self report above voice and face above physiology, are well calibrated to the evidence rather than being conservative theatre.

Esta sección existe para que nadie tenga que aceptar por confianza las cifras de confianza del producto. Declara qué calcula la app, a partir de qué señales y con qué nivel de evidencia; y después da los techos de exactitud publicados para cada categoría que el producto toca. Los números son poco halagüeños para todo el campo, no para este producto en particular, y precisamente por eso corresponden aquí. La conclusión más importante es que el acotado de confianza de la app entre 0,05 y 0,95, y su orden de autorreporte por encima de voz y rostro y estos por encima de la fisiología, están bien calibrados a la evidencia y no son teatro conservador.

10.1 Claim inventory: what the app computes and at what tier

10.1 Inventario de afirmaciones: qué calcula la app y con qué nivel

Everything the app computes that implies a scientific basis, derived from the mood estimation and breathing domain folders and the JSON catalogs. Tiers assigned in the evidence dossier.Todo lo que la app calcula y que implica una base científica, derivado de las carpetas de dominio de estimación de ánimo y de respiración y de los catálogos JSON. Niveles asignados en el expediente de evidencia.
# What is computedQué se calcula From which signalsA partir de qué señales TierNivel
C1Arousal, 0 to 100Activación, 0 a 100heart rate at coefficient 25, respiratory rate 10, motion activity intensity 15, voice and face arousal 8, each against a robust z versus the personal baselinefrecuencia cardíaca con coeficiente 25, frecuencia respiratoria 10, intensidad de actividad 15, activación de voz y rostro 8, cada una contra una z robusta frente a la línea base personalMODERATEMODERADO
C2Valence, minus 100 to plus 100, capped at plus or minus 15 when physiology onlyValencia, de menos 100 a más 100, acotada a más o menos 15 con solo fisiologíaheart rate at minus 15, HRV SDNN at plus 10; overridden 70 to 30 by a self report under two hours, 60 to 40 by voice or facefrecuencia cardíaca a menos 15, VFC SDNN a más 10; anulada 70 a 30 por un autorreporte de menos de dos horas, 60 a 40 por voz o rostroPRELIMINARY for physiology, MODERATE for self reportPRELIMINAR con fisiología, MODERADO con autorreporte
C3Regulation capacity, 0 to 100Capacidad de regulación, 0 a 100HRV SDNN at 18, the RMSSD proxy at 8, sleep hours versus 7 with a 3 hour clamp at 8 per hour, heart rate trend at minus 10VFC SDNN a 18, el proxy de RMSSD a 8, horas de sueño frente a 7 con tope de 3 horas a 8 por hora, tendencia cardíaca a menos 10MODERATEMODERADO
C4Stress index, 0 to 100, neutral at 35Índice de estrés, 0 a 100, neutro en 35arousal above 60 at half weight, HRV SDNN at minus 12, motion restlessness at 20, calendar event density at 15activación por encima de 60 a medio peso, VFC SDNN a menos 12, inquietud de movimiento a 20, densidad de eventos de agenda a 15MODERATE at group level, PRELIMINARY at individual levelMODERADO a nivel de grupo, PRELIMINAR a nivel individual
C5Recovery index, 0 to 100Índice de recuperación, 0 a 100sleep duration versus 7 hours at 7 per hour, sleep debt at minus 6 per hour with a 12 hour cap, deep sleep fraction versus 0.18 at 40 times, wrist temperature deviation at minus 8 times the absolute z, minutes since workout at minus 10 within 180 minutesduración del sueño frente a 7 horas a 7 por hora, deuda de sueño a menos 6 por hora con tope de 12 horas, fracción de sueño profundo frente a 0,18 por 40, desviación de temperatura de muñeca a menos 8 por la z absoluta, minutos desde el entrenamiento a menos 10 dentro de 180 minutosPRELIMINARYPRELIMINAR
C6Emotional readiness, 0 to 100Disposición emocional, 0 a 1000.4 regulation plus 0.35 recovery plus 0.25 of 100 minus stress0,4 regulación más 0,35 recuperación más 0,25 de 100 menos estrésPRELIMINARY, a composite with no external validationPRELIMINAR, un compuesto sin validación externa
C7Discrete emotion plus a probability distribution over 17 catalog emotionsEmoción discreta más una distribución de probabilidad sobre 17 emociones del catálogoprototype distance in valence, arousal and regulation spacedistancia al prototipo en el espacio de valencia, activación y regulaciónPRELIMINARYPRELIMINAR
C8Confidence, clamped 0.05 to 0.95Confianza, acotada de 0,05 a 0,95data quality, baseline maturity, valence evidence factor, confounder load, agreement and cold startcalidad de dato, madurez de línea base, factor de evidencia de valencia, carga de confusores, acuerdo y arranque en fríoHonest by constructionHonesta por construcción
C9Hawkins symbolic range, never a point, ceiling 600Rango simbólico Hawkins, nunca un punto, techo 600emotion distribution up to cumulative mass 0.6distribución de emociones hasta masa acumulada 0,6SYMBOLIC, no scientific basisSIMBÓLICO, sin base científica
C10Suggested frequency in hertz from a 285 to 963 Hz catalogFrecuencia sugerida en hercios de un catálogo de 285 a 963 Hzthe currently estimated emotion, looked up in the audio profilela emoción estimada actual, consultada en el perfil de audioSYMBOLIC, no scientific basisSIMBÓLICO, sin base científica
C11Session duration band, 3 to 45 minutes, keyed to the Hawkins starting levelBanda de duración de sesión, 3 a 45 minutos, según el nivel Hawkins de partidathe suggested minutes functionla función de minutos sugeridosUNSUPPORTED PROVENANCE, see section 8.6PROCEDENCIA NO SUSTENTADA, véase la sección 8.6
C12Breathing technique recommendation, ranked by scoreRecomendación de técnica respiratoria, ordenada por puntuaciónestimated emotion and dimension tags, personal effectiveness history, time of day and varietyetiquetas de emoción y dimensión estimadas, historial de efectividad personal, hora del día y variedadMODERATE, but per technique it varies, see section 7.1MODERADO, pero varía por técnica, véase la sección 7.1
C13Breath improvement score, minus 100 to plus 100, or nothing when evidence is insufficientPuntuación de mejora respiratoria, de menos 100 a más 100, o nada cuando la evidencia es insuficientepre and post deltas in stress, arousal, respiratory rate and heart rate, each divided by a personal noise floor and clampeddiferencias antes y después en estrés, activación, frecuencia respiratoria y cardíaca, cada una dividida por un suelo de ruido personal y acotadaPRELIMINARY, a within person observation honestly framedPRELIMINAR, una observación intrapersona encuadrada con honestidad
C14Breath safety gate, blocking or warning per declared contraindicationCompuerta de seguridad respiratoria, bloqueo o advertencia según contraindicación declaradathe hyperventilatory and long hold structural flags crossed with 8 declared conditionslas banderas estructurales de hiperventilación y retenciones largas cruzadas con 8 condiciones declaradasSTRONG for the hyperventilation plus apnea hazardFUERTE para el peligro de hiperventilación más apnea
C15Confounder detection, so that exercise is not read as anxietyDetección de confusores, para que el ejercicio no se lea como ansiedadthe five rules in section 3.5las cinco reglas de la sección 3.5STRONG, methodologically correctFUERTE, metodológicamente correcta
C16Prosodic voice featuresSeñales prosódicas de vozlocal analysis with no transcription and no audio persisted; feeds arousal and valence only and is never surfaced as a claimanálisis local sin transcripción y sin persistir audio; alimenta solo activación y valencia y nunca se expone como afirmaciónPRELIMINARYPRELIMINAR
C17Facial expression featuresSeñales de expresión facialARKit blendshape coefficients with no pixels persisted; feeds arousal and valence only, weighted lowcoeficientes de blendshape de ARKit sin persistir píxeles; alimenta solo activación y valencia, con peso bajoPRELIMINARY, with a strong published critiquePRELIMINAR, con una crítica publicada sólida
C18Ambient soundscapes, ten procedurally synthesised bedsPaisajes sonoros ambientales, diez bases sintetizadaspure signal processing, no sensor inputprocesamiento de señal puro, sin entrada de sensorClaim free: the copy is comfort framed and no health claim is madeSin afirmación: el texto se encuadra en comodidad y no se hace ninguna afirmación de salud
C19PHQ-9 and GAD-7 wellness trend estimatesEstimaciones de tendencia de bienestar PHQ-9 y GAD-7NOT SHIPPED, planned for milestone M4NO PUBLICADO, planificado para el hito M4The highest regulatory exposure in the roadmap, see section 12.3La mayor exposición regulatoria del plan, véase la sección 12.3

10.2 Wearable affect recognition: the published ceiling

10.2 Reconocimiento de afecto con dispositivos vestibles: el techo publicado

Published benchmark figures, transcribed from the source tables of the cited papers.Cifras de referencia publicadas, transcritas de las tablas fuente de los artículos citados.
BenchmarkReferencia TaskTarea Best published figureMejor cifra publicada SourceFuente
WESAD, wrist physiology with blood volume pulse, electrodermal activity and temperature, leave one subject outWESAD, fisiología de muñeca con pulso de volumen sanguíneo, actividad electrodérmica y temperatura, dejando un sujeto fuera3 class: baseline, stress, amusement3 clases: base, estrés, diversiónF1 66.33 / acc 76.178
WESAD, chest physiologyWESAD, fisiología de pecho3 class3 clasesF1 72.51 / acc 80.348
WESAD, wrist physiologyWESAD, fisiología de muñecabinary: stress versus non stressbinaria: estrés frente a no estrésF1 86.10 / acc 88.338
WESAD, chest physiologyWESAD, fisiología de pechobinarybinariaF1 91.47 / acc 93.128
Random baseline in the same evaluationLínea base aleatoria en la misma evaluación3 class / binary3 clases / binariaF1 31.66 / F1 47.968
Wearable artificial intelligence for student stress, meta analysis of 6 studies within 19 reviewed, 11,425 participantsInteligencia artificial vestible para estrés estudiantil, metaanálisis de 6 estudios dentro de 19 revisados, 11.425 participantesbinary stressestrés binarioacc 0.856, CI 0.698 to 0.9349

Four things follow directly. The specification's M3 shipping gate, stated as matching or beating the published three class WESAD wrist only F1, resolves to a concrete number, F1 66.33, and that number should be written into the specification so the gate is testable. The app cannot reach even that figure, because the WESAD wrist result includes electrodermal activity and Apple Watch has no such sensor, so the achievable ceiling is strictly lower. WESAD itself is fifteen valid subjects, twelve male and three female, mean age 27.5 with a standard deviation of 2.4, and lab induced affect; its authors warn that results should be interpreted with caution given the number of subjects and the lack of age and gender diversity. And WESAD provides categorical condition labels rather than continuous valence, arousal and dominance targets, so training the planned cross attention head on it requires a label mapping the dataset does not license. There is one further live risk: the authors flag that subjects spoke during the stress condition, so classifiers might have partially learned to distinguish speaking from non speaking episodes, which is a direct leakage risk for a system that also ingests prosody8.

De ahí se siguen cuatro cosas. La compuerta de publicación de M3, enunciada como igualar o superar la F1 publicada de WESAD con tres clases y solo muñeca, se resuelve a un número concreto, F1 66,33, y ese número debería escribirse en la especificación para que la compuerta sea comprobable. La app no puede alcanzar ni siquiera esa cifra, porque el resultado de muñeca de WESAD incluye actividad electrodérmica y el Apple Watch no tiene tal sensor, así que el techo alcanzable es estrictamente menor. WESAD mismo son quince sujetos válidos, doce hombres y tres mujeres, edad media 27,5 con desviación de 2,4, y afecto inducido en laboratorio; sus autores advierten que los resultados deben interpretarse con cautela dada la cantidad de sujetos y la falta de diversidad de edad y género. Y WESAD aporta etiquetas categóricas de condición y no objetivos continuos de valencia, activación y dominancia, así que entrenar la cabeza de atención cruzada planificada exige un mapeo de etiquetas que el conjunto de datos no autoriza. Hay un riesgo vivo adicional: los autores señalan que los sujetos hablaron durante la condición de estrés, de modo que los clasificadores podrían haber aprendido en parte a distinguir episodios de habla de los de silencio, lo que es un riesgo directo de fuga para un sistema que además ingiere prosodia8.

10.3 The heart rate variability validity problem, the most consequential limitation

10.3 El problema de validez de la VFC, la limitación más consecuente

The app derives regulation capacity, the stress index and part of valence from HealthKit heart rate variability. HealthKit exposes SDNN and not RMSSD. That costs real validity, and the amount is quantifiable.

La app deriva la capacidad de regulación, el índice de estrés y parte de la valencia de la VFC de HealthKit. HealthKit expone SDNN y no RMSSD. Eso cuesta validez real, y la cantidad es cuantificable.

Quantified limits on wrist derived heart rate variability, each figure from the cited primary source.Límites cuantificados de la VFC derivada de la muñeca, cada cifra de la fuente primaria citada.
FindingHallazgo NumberNúmero SourceFuente
RMSSD is the vagal index; SDNN reflects both sympathetic and parasympathetic activityRMSSD es el índice vagal; SDNN refleja actividad tanto simpática como parasimpáticaqualitative, stated verbatim in the sourcecualitativo, declarado literalmente en la fuente11
SDNN bias in a 10 second window versus a 240 to 300 second referenceSesgo de SDNN en una ventana de 10 segundos frente a una referencia de 240 a 300 segundosCohen d 0.855 to 0.89424
RMSSD bias in the same 10 second windowSesgo de RMSSD en la misma ventana de 10 segundosCohen d 0.150 to 0.17124
Apple Watch normal to normal interval agreement at restConcordancia de intervalos normal a normal del Apple Watch en reposoMAPE 31.41%, CCC 0.73719
Apple Watch normal to normal interval agreement during ordinary conversationConcordancia de intervalos normal a normal del Apple Watch durante una conversación ordinariaMAPE 93.08%, CCC 0.04419
Apple Watch beat to beat interval agreement at restConcordancia de intervalos latido a latido del Apple Watch en reposoMAPE 1.15%, CCC 0.99119
Research wristband RMSSD versus electrocardiogram under static conditionsRMSSD de pulsera de investigación frente a electrocardiograma en condiciones estáticasdifference factor 32.59%, limits minus 58.06 to 23.24 ms20
Research grade optical RMSSD, supine versus merely seatedRMSSD óptico de grado investigación, tumbado frente a simplemente sentadolimits widen from -13.51..7.09 to -30.69..14.59 ms21
Best case consumer nocturnal RMSSD error; Apple Watch was not among the devices testedMejor caso de error de RMSSD nocturno de consumo; el Apple Watch no estuvo entre los dispositivos probados5.96% to 16.32% MAPE26
Inter individual variation in short term heart rate variabilityVariación interindividual en VFC de corto plazoup to 260,000%14
Adults with no discernible synchrony between respiration and heart rateAdultos sin sincronía discernible entre respiración y frecuencia cardíacaabout 30%15

Four honest conclusions follow. First, heart rate is accurate but the beat interval series that heart rate variability needs is not: beat to beat agreement at rest is excellent at 1.15 percent error, while the interval series actually used for variability is 31.41 percent at rest and 93.08 percent while talking. Any variability derived dimension inherits the worse number, not the better one, and the conversation figure is the one a skeptical advisor will fixate on, because a concordance of 0.044 is effectively zero agreement under a completely ordinary non athletic condition. Second, SDNN over short windows is the wrong metric and the only one available; the app is explicit about this and caps the RMSSD proxy at 0.4 quality, which is correct and unusually candid, but the size of the cost is a large systematic bias of about 0.87 standard deviations rather than mere noise. Third, absolute values are meaningless across people, which is the empirical warrant for the entire personal baseline architecture. Fourth, roughly thirty percent of people show no discernible respiratory sinus arrhythmia at all, so for those users variability derived regulation estimates carry near zero signal; the confidence formula degrades gracefully but the product has no way to detect membership in that thirty percent.

Se siguen cuatro conclusiones honestas. Primera, la frecuencia cardíaca es exacta pero la serie de intervalos entre latidos que la VFC necesita no lo es: la concordancia latido a latido en reposo es excelente, con 1,15 por ciento de error, mientras que la serie de intervalos realmente usada para la VFC es del 31,41 por ciento en reposo y del 93,08 por ciento al hablar. Cualquier dimensión derivada de la VFC hereda el peor número y no el mejor, y la cifra de la conversación es la que fijará la atención de un asesor escéptico, porque una concordancia de 0,044 es acuerdo prácticamente nulo en una condición completamente ordinaria y no deportiva. Segunda, el SDNN en ventanas cortas es la métrica equivocada y la única disponible; la app es explícita al respecto y limita el proxy de RMSSD a 0,4 de calidad, lo que es correcto e inusualmente franco, pero el tamaño del costo es un sesgo sistemático grande de unas 0,87 desviaciones y no mero ruido. Tercera, los valores absolutos carecen de sentido entre personas, lo que es la justificación empírica de toda la arquitectura de línea base personal. Cuarta, alrededor del treinta por ciento de las personas no muestra arritmia sinusal respiratoria discernible en absoluto, así que para esos usuarios las estimaciones de regulación derivadas de la VFC llevan señal casi nula; la fórmula de confianza degrada con elegancia pero el producto no tiene forma de detectar la pertenencia a ese treinta por ciento.

10.4 Facial and voice ceilings

10.4 Techos facial y de voz

On the facial surface, the definitive review states that instances of emotion categories are not expressed with facial movements that are sufficiently reliable and specific across contexts, individuals and cultures to be considered diagnostic displays of any emotional state. Its confirmed figures: the hypothesised facial configuration appears only about 19 percent of the time during an emotional event, with a proportion range of 0.15 to 0.25; the intensity correlation averages r equal to 0.32; labelling a scowl as anger occurs at rates of only 0.20 to 0.39; and infants under arm restraint, an anger induction, produced the anger configuration 24 percent of the time and the surprise configuration 54 percent6. An independent meta analysis from a different laboratory confirms it quantitatively, with a mean effect size of 0.13 for facial action coded full expressions and 0.23 for full plus partial7. Note also what that review does not support: it explicitly concedes above chance reliability, so it cannot be cited for the claim that faces carry zero emotion information, and it says nothing about physiological or wearable inference.

En la superficie facial, la revisión definitiva afirma que las instancias de categorías emocionales no se expresan con movimientos faciales lo bastante fiables y específicos entre contextos, individuos y culturas como para considerarse manifestaciones diagnósticas de ningún estado emocional. Sus cifras confirmadas: la configuración facial hipotetizada aparece solo alrededor del 19 por ciento del tiempo durante un evento emocional, con un rango de proporción de 0,15 a 0,25; la correlación de intensidad promedia r igual a 0,32; etiquetar un ceño como ira ocurre a tasas de solo 0,20 a 0,39; y bebés con los brazos sujetados, una inducción de ira, produjeron la configuración de ira el 24 por ciento de las veces y la de sorpresa el 54 por ciento6. Un metaanálisis independiente de otro laboratorio lo confirma cuantitativamente, con un tamaño de efecto medio de 0,13 para expresiones completas codificadas por acción facial y 0,23 para completas más parciales7. Obsérvese también lo que esa revisión no sostiene: concede explícitamente fiabilidad por encima del azar, así que no puede citarse para afirmar que los rostros no llevan información emocional alguna, y no dice nada sobre inferencia fisiológica o con dispositivos vestibles.

The app's response is the correct engineering response to that literature: heuristic blendshape proxies, documented in the aggregator's own header as a supporting signal and never absolute truth, weighted low, with a tracking quality term, and never surfaced as a standalone claim.

La respuesta de la app es la respuesta de ingeniería correcta a esa literatura: proxies heurísticos de blendshape, documentados en el propio encabezado del agregador como señal de apoyo y jamás verdad absoluta, con peso bajo, con un término de calidad de seguimiento, y nunca expuestos como afirmación autónoma.

Published ceilings across the digital phenotyping, speech and facial surfaces. These are the numbers a clinical advisor will ask for.Techos publicados en las superficies de fenotipado digital, habla y rostro. Estos son los números que pedirá un asesor clínico.
SurfaceSuperficie Real published ceilingTecho real publicado SourceFuente
Passive sensing to depression severity, 51 studiesCaptación pasiva a gravedad de depresión, 51 estudiosaccuracy 60.1 to 86.1 percent, r 0.41 to 0.86, median study n of 58, no meta analysis possibleexactitud de 60,1 a 86,1 por ciento, r de 0,41 a 0,86, n mediana de 58 por estudio, metaanálisis imposible126
Passive sensing, best single well powered studyCaptación pasiva, el mejor estudio con potencia adecuadalocation variance r equal to minus 0.31; self reported valence at minus 0.48 beat every passive sensorvarianza de ubicación r igual a menos 0,31; la valencia autorreportada con menos 0,48 superó a todos los sensores pasivos127
Smartphone sensing to a depression questionnaire scoreCaptación con teléfono a una puntuación de cuestionario de depresiónabsolute r about 0.33 to 0.40, that is 11 to 16 percent of variance, with uncorrected p values and no area under the curve ever reportedr absoluta de unos 0,33 a 0,40, es decir del 11 al 16 por ciento de la varianza, con valores p sin corregir y sin que se reporte nunca un área bajo la curva128
Speech to depression, challenge baselinesHabla a depresión, líneas base de competiciónaudio F1 0.41 to 0.46; questionnaire regression error 6.74 to 7.78F1 de audio de 0,41 a 0,46; error de regresión del cuestionario de 6,74 a 7,78131
Speech, the decisive comparisonHabla, la comparación decisivapredicting the population mean for everyone gives an error of 5.73, which is better than every published audio, video and fusion baselinepredecir la media poblacional para todos da un error de 5,73, mejor que toda línea base publicada de audio, vídeo y fusión131
Speech, shortcut learningHabla, aprendizaje por atajoa model seeing only the interviewer's questions and zero patient speech scores 0.84 to 0.88 macro F1un modelo que ve solo las preguntas del entrevistador y ninguna habla del paciente obtiene de 0,84 a 0,88 de macro F1133
Speech emotion, cross corpus generalisationEmoción en el habla, generalización entre corpusunweighted accuracy falls from 89.8 percent matched to 65.3 percent mismatchedla exactitud sin ponderar cae del 89,8 por ciento emparejado al 65,3 por ciento no emparejado134
Face in the wild to depressionRostro en entorno real a depresiónbalanced accuracy 0.60 versus a 0.52 baseline, correlation coefficient 0.14, no healthy controls at allexactitud equilibrada 0,60 frente a una línea base de 0,52, coeficiente de correlación 0,14, sin ningún control sano136
Circadian disruption to mood, 91,105 participantsDisrupción circadiana a estado de ánimo, 91.105 participanteslifetime major depression odds ratio 1.06, confidence interval 1.04 to 1.08, per quintilerazón de probabilidades de depresión mayor de por vida 1,06, intervalo de confianza 1,04 a 1,08, por quintil139

The speech finding is the most important single number in this section. If the published speech to depression baselines cannot beat a constant predictor, then no claim of voice based depression estimation is defensible today. The app's current posture, that prosodic features feed arousal and valence only, weighted low, never surfaced as a standalone claim and with no transcription, is the only defensible one. And self report outperforming passive sensing is not a talking point, it is an empirical finding that the confidence formula already encodes.

El hallazgo sobre el habla es el número más importante de esta sección. Si las líneas base publicadas de habla a depresión no pueden superar a un predictor constante, entonces hoy no es defendible ninguna afirmación de estimación de depresión basada en voz. La postura actual de la app, que las señales prosódicas alimenten solo activación y valencia, con peso bajo, sin exponerse jamás como afirmación autónoma y sin transcripción, es la única defendible. Y que el autorreporte supere a la captación pasiva no es un argumento de venta, es un hallazgo empírico que la fórmula de confianza ya codifica.

10.5 PHQ-9 and GAD-7: validated instruments, with a critical caveat about inference

10.5 PHQ-9 y GAD-7: instrumentos validados, con una salvedad crítica sobre la inferencia

The nine item depression questionnaire achieves sensitivity of 88 percent and specificity of 88 percent at a cutoff of ten123, and the seven item anxiety measure achieves sensitivity of 89 percent and specificity of 82 percent at the same cutoff124. Both are free to use with no permission required, subject to keeping the attribution footer125. The caveat that governs the M4 roadmap item is this: those operating characteristics belong to the administered questionnaire, meaning the person reading the items and answering them. They transfer to a sensor inferred score not at all. Nothing in either validation paper validates estimating such a score from heart rate variability, sleep and voice, and the passive sensing literature above shows correlations in the range of 0.3 to 0.4 at best, from studies with a median sample size of 58. Naming an inferred output after the instrument borrows the credibility of an 88 and 88 instrument for an estimate with no comparable validation, which is both the scientific and the regulatory problem described in section 12.3.

El cuestionario de depresión de nueve ítems alcanza una sensibilidad del 88 por ciento y una especificidad del 88 por ciento con un punto de corte de diez123, y la medida de ansiedad de siete ítems alcanza una sensibilidad del 89 por ciento y una especificidad del 82 por ciento con el mismo corte124. Ambos son de uso libre sin permiso, siempre que se conserve el pie de atribución125. La salvedad que gobierna el ítem M4 del plan es esta: esas características operativas pertenecen al cuestionario administrado, es decir a la persona que lee los ítems y los responde. No se transfieren en absoluto a una puntuación inferida por sensores. Nada en ninguno de los dos artículos de validación valida estimar tal puntuación a partir de VFC, sueño y voz, y la literatura de captación pasiva de arriba muestra correlaciones en el rango de 0,3 a 0,4 en el mejor caso, procedentes de estudios con un tamaño muestral mediano de 58. Nombrar una salida inferida como el instrumento toma prestada la credibilidad de un instrumento de 88 y 88 para una estimación sin validación comparable, que es a la vez el problema científico y el regulatorio descrito en la sección 12.3.

10.6 The honest summary of the breathing evidence

10.6 El resumen honesto de la evidencia sobre respiración

Slow breathing raises vagally mediated heart rate variability, and that is well established: a meta analysis of 31 studies with 1,133 participants reports a standardised mean difference of 0.37 for one variability measure and 0.77 for another, along with a systolic blood pressure difference of minus 0.4534. The honest headline from the same paper is the negative emotion and perceived stress result: a standardised mean difference of minus 0.51 with a confidence interval from minus 1.06 to plus 0.03, which crosses zero and is therefore not statistically significant. A broader meta analysis of breathwork randomised trials does find effects, stress at Hedges g minus 0.35 across 12 trials and 785 participants, anxiety at minus 0.32 across 20 trials and depressive symptoms at minus 0.40 across 1836, but its own authors caution that most studies were at moderate risk of bias and urge avoiding a miscalibration between hype and evidence, and the first author declares training as a breath teacher.

La respiración lenta eleva la VFC de mediación vagal, y eso está bien establecido: un metaanálisis de 31 estudios con 1.133 participantes reporta una diferencia media estandarizada de 0,37 para una medida de variabilidad y 0,77 para otra, junto con una diferencia de presión sistólica de menos 0,4534. El titular honesto del mismo artículo es el resultado de emoción negativa y estrés percibido: una diferencia media estandarizada de menos 0,51 con un intervalo de confianza de menos 1,06 a más 0,03, que cruza el cero y por tanto no es estadísticamente significativa. Un metaanálisis más amplio de ensayos aleatorizados de trabajo respiratorio sí halla efectos, estrés con g de Hedges de menos 0,35 en 12 ensayos y 785 participantes, ansiedad en menos 0,32 en 20 ensayos y síntomas depresivos en menos 0,40 en 1836, pero sus propios autores advierten que la mayoría de los estudios tenían riesgo moderado de sesgo e instan a evitar una descalibración entre la expectación y la evidencia, y el primer autor declara formación como instructor de respiración.

The single most important negative result in the whole dossier is a participant blinded, parallel, placebo controlled randomised trial with 400 participants: coherent breathing at about 5.5 breaths per minute versus an attention matched active placebo at 12 breaths per minute, ten minutes a day for four weeks. Both arms improved over time, but there was no group by time interaction on subjective stress and no group effect on anxiety, depression or wellbeing at post test or at one month follow up. The authors state there was no measurable effect of coherent breathing over and above a well designed breathwork placebo37. Any claim that paced breathing improves mental health must cite this alongside the positive meta analysis. Its practical implication for the product is important and defensible: users do improve, both arms did, but the improvement is not attributable to the specific breathing cadence. The app's shipped copy, which says a technique may help and that an effect is usually noticed, is consistent with this. A claim of cadence specific efficacy would not be.

El resultado negativo más importante de todo el expediente es un ensayo aleatorizado paralelo con ciego del participante y control con placebo, con 400 participantes: respiración coherente a unas 5,5 respiraciones por minuto frente a un placebo activo equiparado en atención a 12 respiraciones por minuto, diez minutos al día durante cuatro semanas. Ambos brazos mejoraron con el tiempo, pero no hubo interacción de grupo por tiempo en el estrés subjetivo ni efecto de grupo en ansiedad, depresión o bienestar ni al final ni en el seguimiento al mes. Los autores afirman que no hubo efecto medible de la respiración coherente por encima de un placebo respiratorio bien diseñado37. Toda afirmación de que la respiración pautada mejora la salud mental debe citar esto junto al metaanálisis positivo. Su implicación práctica para el producto es importante y defendible: los usuarios sí mejoran, ambos brazos lo hicieron, pero la mejora no es atribuible a la cadencia respiratoria concreta. Los textos publicados de la app, que dicen que una técnica puede ayudar y que un efecto suele notarse, son coherentes con esto. Una afirmación de eficacia específica de la cadencia no lo sería.

The app's compliance pass already records 23 edits converting effect assertions into hedged language, and a references card stating that the evidence base is uneven per technique. That is precisely the posture the verified literature supports.

El paso de cumplimiento de la app ya registra 23 ediciones que convierten afirmaciones de efecto en lenguaje matizado, y una tarjeta de referencias que declara que la base de evidencia es desigual según la técnica. Esa es precisamente la postura que la literatura verificada respalda.

11. What is not scientifically supported

11. Lo que no tiene respaldo científico

This is the most important section of the document, and for an investor audience it is a de risking asset rather than a liability. It demonstrates that the team knows exactly where its regulatory and reputational exposure sits and has already built product controls around it. Two things in the product have no scientific support whatsoever: the Hawkins consciousness scale and the Solfeggio frequency claim. Both findings below come from reading the primary sources, and both are stronger than merely saying the claims are unproven.

Esta es la sección más importante del documento y, para un público inversor, es un activo de reducción de riesgo y no un pasivo. Demuestra que el equipo sabe exactamente dónde está su exposición regulatoria y reputacional y que ya ha construido controles de producto a su alrededor. Dos cosas del producto no tienen respaldo científico alguno: la escala de conciencia de Hawkins y la afirmación sobre las frecuencias Solfeggio. Ambos hallazgos siguientes provienen de leer las fuentes primarias, y ambos son más fuertes que limitarse a decir que las afirmaciones no están probadas.

11.1 The Hawkins map of consciousness: no empirical support at all

11.1 El mapa de la conciencia de Hawkins: ningún respaldo empírico

The finding, stated without hedging: there is not one peer reviewed empirical study testing, validating or replicating Hawkins' consciousness calibration scale. Exhaustive searches were run and returned nothing. A PubMed search for the map of consciousness together with Hawkins returns zero results. A PubMed search for Hawkins consciousness calibration levels returns zero results. A search for the book title or the calibration phrase returns 1,303 results, none relating to Hawkins, all being generic biomechanics or metacognition terminology. Google Scholar returns only Hawkins' own self published books, one unrelated 1999 article and one Polish literary studies article discussing his calibrations. The entire evidentiary basis is self published books issued by the author's own company113.

El hallazgo, sin rodeos: no existe ni un solo estudio empírico revisado por pares que pruebe, valide o replique la escala de calibración de conciencia de Hawkins. Se hicieron búsquedas exhaustivas y no devolvieron nada. Una búsqueda en PubMed del mapa de la conciencia junto con Hawkins devuelve cero resultados. Una búsqueda en PubMed de niveles de calibración de conciencia de Hawkins devuelve cero resultados. Una búsqueda del título del libro o de la frase de calibración devuelve 1.303 resultados, ninguno relativo a Hawkins, todos terminología genérica de biomecánica o metacognición. Google Scholar devuelve solo los libros autopublicados del propio Hawkins, un artículo de 1999 sin relación y un artículo polaco de estudios literarios que comenta sus calibraciones. Toda la base probatoria son libros autopublicados por la propia empresa del autor113.

The method is applied kinesiology, meaning muscle testing. In the rights holder's own words: the questioner holds a statement silently in mind, and the response of the second person is to the essence of the question, until the respondent's arm goes weak105. Applied kinesiology has been tested under controlled conditions and has failed every time.

El método es la kinesiología aplicada, es decir la prueba muscular. En palabras del propio titular de derechos: el interrogador sostiene una afirmación en silencio en su mente, y la respuesta de la segunda persona es a la esencia de la pregunta, hasta que el brazo del sujeto se debilita105. La kinesiología aplicada se ha probado en condiciones controladas y ha fracasado todas las veces.

Controlled tests of applied kinesiology, the method underlying the Hawkins calibration scale. Every row was verified at the primary record.Pruebas controladas de kinesiología aplicada, el método que sustenta la escala de calibración de Hawkins. Cada fila se verificó en el registro primario.
StudyEstudio DesignDiseño ResultResultado
Kenney and colleagues, 1988Kenney y colegas, 1988109 11 subjects, 3 experienced practitioners, 4 nutrients11 sujetos, 3 practicantes experimentados, 4 nutrientes Verbatim: no more useful than random guessing. No inter tester agreement, no correlation with biochemistry, no placebo discrimination.Literal: no más útil que adivinar al azar. Sin concordancia entre evaluadores, sin correlación con la bioquímica, sin discriminación del placebo.
Lüdtke and colleagues, 2001Lüdtke y colegas, 2001108 4 examiners, wasp venom allergic patients, 10 genuine and 10 placebo samples4 examinadores, pacientes alérgicos a veneno de avispa, 10 muestras genuinas y 10 placebo Verbatim: an overall kappa of 0.03 indicates the test is not reliable. Sensitivity 40 percent, specificity 60 percent.Literal: un kappa global de 0,03 indica que la prueba no es fiable. Sensibilidad del 40 por ciento, especificidad del 60 por ciento.
Hall and colleagues, 2008Hall y colegas, 2008107 Systematic review, 22 studies appraised with standard quality instrumentsRevisión sistemática, 22 estudios evaluados con instrumentos de calidad estándar Verbatim: insufficient evidence for diagnostic accuracy, the validity of muscle response and the effectiveness of kinesiology for any condition. All quality scores were zero out of five.Literal: evidencia insuficiente para la exactitud diagnóstica, la validez de la respuesta muscular y la eficacia de la kinesiología para cualquier condición. Todas las puntuaciones de calidad fueron cero sobre cinco.
Schwartz and colleagues, 2014Schwartz y colegas, 2014110 Double blind randomised, 51 participants, sealed toxic versus saline vialsDoble ciego aleatorizado, 51 participantes, viales sellados de tóxico frente a solución salina Correct in 80 of 151, that is 53 percent, one tailed exact binomial p equal to 0.258, which is chance. Published in a venue sympathetic to unconventional modalities, with a statistician co author known for favourable parapsychology analyses, and it still came out null.Acierto en 80 de 151, es decir el 53 por ciento, binomial exacta de una cola con p igual a 0,258, es decir azar. Publicado en una revista simpatizante con modalidades no convencionales, con un coautor estadístico conocido por análisis favorables en parapsicología, y aun así salió nulo.
Kelso, 2018, in an official allergy and immunology journalKelso, 2018, en una revista oficial de alergia e inmunología111 Position review of unproven diagnostic testsRevisión de posición sobre pruebas diagnósticas no probadas Applied kinesiology is listed among unproven tests; verbatim, most of the tests lack biologic plausibility, with controlled studies showing lack of reproducibility.La kinesiología aplicada figura entre las pruebas no validadas; literal, la mayoría de las pruebas carecen de plausibilidad biológica, con estudios controlados que muestran falta de reproducibilidad.
British allergy society guidance, 2020Guía de la sociedad británica de alergia, 2020112 Choosing wisely guidance on alternative testingGuía de elección prudente sobre pruebas alternativas Its applied kinesiology row reads verbatim: there is no evidence for diagnostic accuracy or effectiveness for any condition.Su fila de kinesiología aplicada dice literalmente: no hay evidencia de exactitud diagnóstica ni de eficacia para ninguna condición.

There is also an unfalsifiability problem. Hawkins' own publisher states that kinesiology can be done effectively only by persons who calibrate above the level of Truth and Integrity at consciousness level 200, and that the motive for the inquiry must also be above 200105. That makes every failed replication attributable to the tester rather than to the method, which is the defining structure of an unfalsifiable claim. Compounding it, the founding book is asserted, by the very method it introduces, to calibrate at 850.

Hay además un problema de infalsabilidad. La propia editorial de Hawkins afirma que la kinesiología solo pueden practicarla eficazmente personas que calibran por encima del nivel de Verdad e Integridad en el nivel de conciencia 200, y que el motivo de la indagación también debe estar por encima de 200105. Eso hace que toda replicación fallida sea atribuible al evaluador y no al método, que es la estructura definitoria de una afirmación infalsable. Para colmo, se afirma que el libro fundacional calibra en 850, por el mismo método que introduce.

The credential context is stated here because a diligence process will find it, and finding it here first is materially better than finding it in a journalist's write up. Hawkins' medical degree, Medical College of Wisconsin, 1953, is real. The doctorate used throughout Hawkins marketing was awarded in 1995 by Columbia Pacific University, an institution the United States Government Accountability Office names in a report titled Diploma Mills as an unaccredited school, and which the Marin County Superior Court ordered to cease operating in California in December 1999, having determined that it failed to meet various requirements for issuing doctoral degrees, awarded excessive credit based on life experience and failed to employ duly qualified staff106. The two credentials should never be presented as equivalent.

El contexto de las credenciales se declara aquí porque un proceso de diligencia lo encontrará, y encontrarlo primero aquí es materialmente mejor que encontrarlo en el artículo de un periodista. El título médico de Hawkins, Medical College of Wisconsin, 1953, es real. El doctorado usado en toda la comunicación de Hawkins fue otorgado en 1995 por Columbia Pacific University, una institución que la Oficina de Rendición de Cuentas del Gobierno de Estados Unidos señala en un informe titulado Fábricas de Diplomas como una escuela sin acreditación, y a la que el Tribunal Superior del Condado de Marin ordenó cesar operaciones en California en diciembre de 1999, tras determinar que incumplía varios requisitos para emitir doctorados, otorgaba crédito excesivo por experiencia vital y no empleaba personal debidamente calificado106. Las dos credenciales no deben presentarse jamás como equivalentes.

How the product handles this is the part that matters, and the handling is adequate. The repository does not treat Hawkins as science; it treats it as an explicitly symbolic layer and enforces that structurally. The estimator cannot emit a point value, because the algorithm widens any degenerate single point range with a neighbouring band until it is no longer a point, and that is enforced by test. The level is never used as a frequency, which is one of the engine's eight documented invariants and is pinned by an invariant test. The ceiling is 600, so enlightenment is never reported as an estimate. The estimator returns nothing with an explicit reason below 0.30 confidence, below 0.25 top emotion probability, or during cold start. And all eight interface surfaces prefix it as a symbolic level, the detail sheet calls it a symbolic reference range, and the explorer sheet carries the full framing line naming it a conceptual map of the project and not a biological measurement. The verdict is that the framing is correct and already enforced in code and copy. The residual risk is not regulatory but reputational: an advisor or journalist who learns the Hawkins background may treat the whole product as credulous. The mitigation is exactly this document: state it first, state it plainly and show the invariants.

Cómo maneja esto el producto es lo que importa, y el manejo es adecuado. El repositorio no trata a Hawkins como ciencia; lo trata como una capa explícitamente simbólica y lo impone estructuralmente. El estimador no puede emitir un valor puntual, porque el algoritmo ensancha cualquier rango degenerado de un solo punto con una banda vecina hasta que deja de ser un punto, y eso se impone por prueba. El nivel nunca se usa como frecuencia, lo que es uno de los ocho invariantes documentados del motor y está fijado por una prueba de invariante. El techo es 600, así que la iluminación nunca se reporta como estimación. El estimador no devuelve nada, con motivo explícito, por debajo de 0,30 de confianza, por debajo de 0,25 de probabilidad de la emoción principal, o durante el arranque en frío. Y las ocho superficies de interfaz lo anteponen como nivel simbólico, la hoja de detalle lo llama rango simbólico de referencia, y la hoja del explorador lleva la línea completa de encuadre que lo designa como mapa conceptual del proyecto y no como medición biológica. El veredicto es que el encuadre es correcto y ya está impuesto en código y en textos. El riesgo residual no es regulatorio sino reputacional: un asesor o periodista que descubra el trasfondo de Hawkins puede tratar todo el producto como crédulo. La mitigación es exactamente este documento: declararlo primero, declararlo claramente y mostrar los invariantes.

11.2 Solfeggio frequencies: no evidence, and a twentieth century provenance

11.2 Frecuencias Solfeggio: sin evidencia y con una procedencia del siglo veinte

The historical finding is stronger than unproven, and it came from reading the primary source. The modern ancient Solfeggio frequencies originate in a 1999 book self published by the first author's own imprint90. Six facts come from the book itself and from tracing its sources.

El hallazgo histórico es más fuerte que "no probado", y proviene de leer la fuente primaria. Las modernas frecuencias Solfeggio "antiguas" se originan en un libro de 1999 autopublicado por el sello del propio primer autor90. Seis hechos provienen del propio libro y de rastrear sus fuentes.

  1. The derivation is explicitly numerological, not acoustic. The book instructs the reader to take verse numbers from a passage of the Book of Numbers and use what it calls the Pythagorean skein to reduce each verse number to a single digit. Its figure titled The Secret Solfeggio Frequencies lists exactly six numbers, 396, 417, 528, 639, 741 and 852, with their digital roots.La derivación es explícitamente numerológica, no acústica. El libro instruye al lector a tomar números de versículo de un pasaje del Libro de los Números y usar lo que llama la madeja pitagórica para reducir cada número a un solo dígito. Su figura titulada Las Frecuencias Solfeggio Secretas lista exactamente seis números, 396, 417, 528, 639, 741 y 852, con sus raíces digitales.
  2. The book never states these numbers in hertz. The string Hz appears exactly once in 537 pages, in an unrelated passage about modulation on sixty hertz wiring, and the word hertz appears once, in an unrelated passage about brain alpha waves. The six numbers are never given a unit. Their reinterpretation as audio frequencies happened downstream, in the sound healing market, and not in the source text.El libro nunca expresa esos números en hercios. La cadena Hz aparece exactamente una vez en 537 páginas, en un pasaje sin relación sobre modulación en cableado de sesenta hercios, y la palabra hercio aparece una vez, en un pasaje sin relación sobre ondas alfa cerebrales. Los seis números nunca reciben unidad. Su reinterpretación como frecuencias de audio ocurrió después, en el mercado de la sanación sonora, y no en el texto fuente.
  3. 285 and 963 do not appear in the 1999 book at all. They were added later by third parties. This app's range therefore begins at 285 Hz and ends at 963 Hz, both outside even the origin myth's own canon.285 y 963 no aparecen en absoluto en el libro de 1999. Fueron añadidos después por terceros. El rango de esta app, por tanto, empieza en 285 Hz y termina en 963 Hz, ambos fuera incluso del propio canon del mito de origen.
  4. The DNA repair claim rests on a phone call. The book asserts that 528 is the exact frequency used by genetic engineers throughout the world to repair DNA, and footnotes that to a personal communication from the inventor of a commercial clustered water product, alongside a toll free number to purchase it. There is no peer reviewed citation for the central claim.La afirmación sobre reparación del ADN descansa en una llamada telefónica. El libro afirma que 528 es la frecuencia exacta que usan los ingenieros genéticos de todo el mundo para reparar el ADN, y lo referencia a una comunicación personal del inventor de un producto comercial de agua estructurada, junto a un número gratuito para comprarlo. No hay cita revisada por pares para la afirmación central.
  5. Publication status. The publisher is the author's own imprint, at the same address printed in the book's own footnotes. This is self publication, not peer review, and the Open Library subject classification for the work includes numerology.Estado de publicación. La editorial es el sello del propio autor, en la misma dirección impresa en las notas al pie del libro. Es autopublicación, no revisión por pares, y la clasificación temática de Open Library para la obra incluye numerología.
  6. The musicological authority is a traced misattribution. The book credits its solfège origin passage to a named musicology professor. It is not his. The passage is verbatim from a Victorian biblical numerology tract of 189491. Both texts were retrieved and matched word for word, including the surrounding lines.La autoridad musicológica es una atribución errónea rastreada. El libro atribuye su pasaje sobre el origen del solfeo a un profesor de musicología nombrado. No es suyo. El pasaje procede literalmente de un tratado victoriano de numerología bíblica de 189491. Ambos textos se recuperaron y coincidieron palabra por palabra, incluidas las líneas circundantes.

The claim that these frequencies are ancient is impossible on its face. Guido d'Arezzo's syllables are relative, movable names denoting scale degrees in an eleventh century sight singing pedagogy92. Pitch as cycles per second did not exist as a concept, and performing pitch varied widely across Europe for four centuries thereafter93. A standardised reference pitch is a twentieth century artefact, formalised in an international standard whose predecessor recommendation dates from 195594. Assigning a hertz value to a medieval hymn is an anachronism, not a rediscovery.

La afirmación de que estas frecuencias son antiguas es imposible en su propia superficie. Las sílabas de Guido de Arezzo son nombres relativos y móviles que designan grados de la escala en una pedagogía de canto a primera vista del siglo once92. El tono como ciclos por segundo no existía como concepto, y el tono de interpretación varió ampliamente por Europa durante cuatro siglos posteriores93. Un tono de referencia estandarizado es un artefacto del siglo veinte, formalizado en una norma internacional cuya recomendación predecesora data de 195594. Asignar un valor en hercios a un himno medieval es un anacronismo, no un redescubrimiento.

The complete peer reviewed literature on Solfeggio and 528 Hz was located by exhaustive PubMed searching and is short enough to state in full. There are two animal studies: rats exposed at 100 decibels, which is roughly a chainsaw and not app playback95, and zebrafish, in the only PubMed indexed study using the word Solfeggio in a therapeutic sense, whose abstract does not even specify which frequencies were used96. There is one unblinded study with nine participants, one man and eight women, published in a journal of a publisher widely listed as predatory, which is the study most often cited by marketers and has never been replicated97. There is one open label trial with sixty participants over one month whose control was standard care with no active audio comparator, so it cannot separate the frequency from the act of chanting daily for a month98. And there is one acute biomarker randomised trial with 162 participants and three arms, the largest and best designed of the set, which reports elevated salivary biomarkers in the 528 Hz arm but no significant cognitive performance difference, from a single twenty minute exposure using non standard and weakly validated markers, with no replication99. Zero controlled human studies exist on 285, 396, 417, 639, 741, 852 or 963 Hz individually. There is no controlled human trial demonstrating a health effect specific to any Solfeggio frequency.

La literatura completa revisada por pares sobre Solfeggio y 528 Hz se localizó con búsquedas exhaustivas en PubMed y es lo bastante breve como para enunciarla entera. Hay dos estudios animales: ratas expuestas a 100 decibelios, que es aproximadamente una motosierra y no la reproducción de una app95, y peces cebra, en el único estudio indexado en PubMed que usa la palabra Solfeggio en sentido terapéutico, cuyo resumen ni siquiera especifica qué frecuencias se usaron96. Hay un estudio sin enmascaramiento con nueve participantes, un hombre y ocho mujeres, publicado en una revista de una editorial ampliamente catalogada como depredadora, que es el estudio más citado por los comercializadores y nunca se ha replicado97. Hay un ensayo abierto con sesenta participantes durante un mes cuyo control fue atención estándar sin comparador de audio activo, de modo que no puede separar la frecuencia del acto de cantar a diario durante un mes98. Y hay un ensayo aleatorizado agudo de biomarcadores con 162 participantes y tres brazos, el mayor y mejor diseñado del conjunto, que reporta biomarcadores salivales elevados en el brazo de 528 Hz pero ninguna diferencia significativa de rendimiento cognitivo, a partir de una única exposición de veinte minutos con marcadores no estándar y débilmente validados, sin replicación99. No existe ningún estudio humano controlado sobre 285, 396, 417, 639, 741, 852 o 963 Hz por separado. No existe ningún ensayo humano controlado que demuestre un efecto de salud específico de ninguna frecuencia Solfeggio.

No scientific or regulatory body recognises frequency healing. The United States National Center for Complementary and Integrative Health's music and health page does not mention sound healing, healing frequencies, Solfeggio or binaural beats at all, and cautions that even music intervention research is preliminary103. The Federal Trade Commission has issued warning letters against frequency healing marketers, including one against a seller of a programme of specifically formulated frequencies to assist in boosting the immune system, stating that the claims are not supported by competent and reliable scientific evidence and ordering the seller to cease making them101102. That second letter is the closest available regulatory analogue to this app's category.

Ningún organismo científico ni regulador reconoce la sanación por frecuencias. La página de música y salud del Centro Nacional de Salud Complementaria e Integrativa de Estados Unidos no menciona en absoluto la sanación sonora, las frecuencias sanadoras, el Solfeggio ni los batidos binaurales, y advierte que incluso la investigación sobre intervenciones musicales es preliminar103. La Comisión Federal de Comercio ha emitido cartas de advertencia contra comercializadores de sanación por frecuencias, incluida una contra un vendedor de un programa de frecuencias específicamente formuladas para ayudar a reforzar el sistema inmune, declarando que las afirmaciones no están respaldadas por evidencia científica competente y fiable y ordenándole cesar101102. Esa segunda carta es el análogo regulatorio más cercano disponible a la categoría de esta app.

The adjacent literature cannot be borrowed, and this is the core scientific error the product must never make. Neural and motor entrainment to rhythm, meaning the temporal envelope in the range of roughly 0.5 to 8 hertz, is real, replicated and clinically applied838485. That says nothing whatsoever about a carrier tone's pitch. Entraining to a 2 hertz beat and listening to a 528 hertz sine wave are different physical phenomena. Even the binaural beat literature, which this app does not use because it ships no binaural or isochronic audio and there is no beat frequency anywhere in the codebase, has an unestablished mechanism: the best electroencephalography review finds five studies supporting entrainment, eight contradicting it and one mixed, and states that the question cannot be settled at this point74, while the best controlled study with an acoustic beat placebo found no significant changes in any frequency band75. Conflating rhythm entrainment with pitch healing is the core scientific error in this category.

La literatura adyacente no se puede tomar prestada, y este es el error científico central que el producto jamás debe cometer. El arrastre neural y motor al ritmo, es decir a la envolvente temporal en el rango aproximado de 0,5 a 8 hercios, es real, replicado y de aplicación clínica838485. Eso no dice absolutamente nada sobre el tono de una portadora. Arrastrarse a un batido de 2 hercios y escuchar una onda sinusoidal de 528 hercios son fenómenos físicos distintos. Incluso la literatura de batidos binaurales, que esta app no usa porque no envía audio binaural ni isocrónico y no hay frecuencia de batido en ninguna parte del código, tiene un mecanismo no establecido: la mejor revisión electroencefalográfica halla cinco estudios que apoyan el arrastre, ocho que lo contradicen y uno mixto, y afirma que la cuestión no puede zanjarse por ahora74, mientras que el estudio mejor controlado, con un placebo de batido acústico, no halló cambios significativos en ninguna banda de frecuencia75. Confundir el arrastre rítmico con la sanación por tono es el error científico central de esta categoría.

How the product handles this is again the part that matters. A symbolic badge component is deployed on all twelve surfaces that display a hertz value, on both platforms, with copy stating that the frequencies are a symbolic and experimental accompaniment, outside scientific evidence. A dedicated references card, headed with the question of what is supported by science and what is not, exists explicitly to prevent the credibility of the breathing literature from spilling onto the frequency catalog, which the project's own compliance document names as the product's most concrete health claim risk. The team had already identified this as its top claim risk before this dossier existed.

Cómo maneja esto el producto es de nuevo lo que importa. Un componente de insignia simbólica está desplegado en las doce superficies que muestran un valor en hercios, en ambas plataformas, con un texto que declara que las frecuencias son un acompañamiento simbólico y experimental, fuera de la evidencia científica. Una tarjeta de referencias específica, encabezada con la pregunta de qué se apoya en ciencia y qué no, existe explícitamente para impedir que la credibilidad de la literatura de respiración se derrame sobre el catálogo de frecuencias, algo que el propio documento de cumplimiento del proyecto señala como el riesgo más concreto de afirmación de salud del producto. El equipo ya había identificado esto como su principal riesgo de afirmaciones antes de que existiera este expediente.

11.3 Why the product remains defensible

11.3 Por qué el producto sigue siendo defendible

The defence is not that the symbolic layer is secretly supported. It is that the product never asserts that it is, and the architecture makes the assertion structurally impossible. Five points carry that argument. Estimation, never measurement: the compliance pass documents twelve string groups rewritten from statements about the person to statements about the model, with a final project wide search confirming no residue, and the only occurrences of the words for diagnose, treat and cure in the codebase are the negations in the disclaimer. The invariants are enforced by tests rather than by policy, and the eight of them are reproduced below. The science and symbol boundary is drawn inside the product and not only in a legal document, since breathing carries per technique evidence levels and real citations while frequencies carry an outside scientific evidence badge, and a user encounters the distinction on the same screen. Nothing leaves the device, which removes an entire class of privacy and data broker risk. And the user is the authority on their own experience: the feedback prompt was changed from asking whether the app got it right to asking whether the reading reflects how the user feels, with the documented rationale that the former presupposes a correct answer the app could measure and turns an estimate into a verdict.

La defensa no es que la capa simbólica tenga apoyo secreto. Es que el producto nunca afirma que lo tenga, y la arquitectura hace esa afirmación estructuralmente imposible. Cinco puntos sostienen ese argumento. Estimación, nunca medición: el paso de cumplimiento documenta doce grupos de cadenas reescritas de afirmaciones sobre la persona a afirmaciones sobre el modelo, con una búsqueda final en todo el proyecto que confirma que no queda residuo, y las únicas apariciones de las palabras diagnostica, trata y cura en el código son las negaciones del aviso legal. Los invariantes se imponen por pruebas y no por política, y los ocho se reproducen abajo. La frontera entre ciencia y símbolo se traza dentro del producto y no solo en un documento legal, ya que la respiración lleva niveles de evidencia por técnica y citas reales mientras que las frecuencias llevan una insignia de fuera de la evidencia científica, y el usuario encuentra la distinción en la misma pantalla. Nada sale del dispositivo, lo que elimina toda una clase de riesgo de privacidad e intermediarios de datos. Y el usuario es la autoridad sobre su propia experiencia: la pregunta de retroalimentación se cambió de preguntar si la app acertó a preguntar si la lectura refleja cómo se siente el usuario, con la justificación documentada de que la primera presupone una respuesta correcta que la app pudo medir y convierte una estimación en un veredicto.

The eight engine invariants, quoted from the specification. One, the inference method stays pure and deterministic, including the future CoreML conformer. Two, raw audio and images never touch disk, and only derived features cross process and device boundaries. Three, missing sensors degrade confidence and never break inference. Four, physiology only valence, and dominance when it lands, is bounded to plus or minus 15 out of 100. Five, confidence is clamped to 0.05 through 0.95, never certainty. Six, a Hawkins level is never a hertz value, and frequencies come only from the catalog between 285 and 963 Hz. Seven, estimation language everywhere, with no diagnostic claims. Eight, every consent group is individually revocable and the app is functional with all of them denied. Invariants four, five and six are the load bearing ones for this section.

Los ocho invariantes del motor, citados de la especificación. Uno, el método de inferencia permanece puro y determinista, incluido el futuro conformante de CoreML. Dos, el audio y las imágenes en bruto nunca tocan el disco, y solo características derivadas cruzan fronteras de proceso y de dispositivo. Tres, los sensores ausentes degradan la confianza y nunca rompen la inferencia. Cuatro, la valencia de solo fisiología, y la dominancia cuando llegue, queda acotada a más o menos 15 sobre 100. Cinco, la confianza se acota entre 0,05 y 0,95, nunca certeza. Seis, un nivel Hawkins nunca es un valor en hercios, y las frecuencias salen solo del catálogo entre 285 y 963 Hz. Siete, lenguaje de estimación en todas partes, sin afirmaciones diagnósticas. Ocho, cada grupo de consentimiento es revocable por separado y la app funciona con todos denegados. Los invariantes cuatro, cinco y seis son los que sostienen esta sección.

12. Regulatory framing

12. Encuadre regulatorio

As it ships today the product sits inside the United States general wellness policy, outside the European medical device definition, and inside the App Store rules provided its accuracy methodology is disclosed. Two things could move it. The first is marketing language, which in the European Union governs qualification almost entirely. The second is the planned clinical trend layer, which is a board level decision and not an engineering one.

Tal como se publica hoy, el producto se sitúa dentro de la política de bienestar general de Estados Unidos, fuera de la definición europea de producto sanitario, y dentro de las reglas de la App Store siempre que se divulgue su metodología de exactitud. Dos cosas podrían moverlo. La primera es el lenguaje de marketing, que en la Unión Europea gobierna la calificación casi por completo. La segunda es la capa de tendencia clínica planificada, que es una decisión de consejo y no de ingeniería.

12.1 United States: the general wellness line

12.1 Estados Unidos: la línea de bienestar general

The controlling document is the general wellness policy for low risk devices issued on 6 January 2026, which expressly supersedes the September 2019 version114. Any materials still citing the 2019 guidance should be updated. The test is two part. On intended use, category one claims relate to a general state of health with no reference to any disease or condition, and the enumerated domains include relaxation or stress management and sleep management. Explicitly acceptable are claims to promote relaxation or manage stress and claims to promote sleep management such as tracking sleep trends. Explicitly unacceptable is a claim that a product helps treat an anxiety disorder. The guidance's own first illustrative example is almost exactly this product's core: a software function that plays music to soothe and relax an individual and to manage stress is not a device function. On risk, the product must be non invasive, non implanted and free of technology posing a safety risk absent regulatory controls, and the app satisfies all three trivially.

El documento rector es la política de bienestar general para productos de bajo riesgo emitida el 6 de enero de 2026, que sustituye expresamente a la versión de septiembre de 2019114. Cualquier material que aún cite la guía de 2019 debe actualizarse. La prueba tiene dos partes. En cuanto al uso previsto, las afirmaciones de categoría uno se refieren a un estado general de salud sin referencia a ninguna enfermedad o condición, y los dominios enumerados incluyen la relajación o gestión del estrés y la gestión del sueño. Explícitamente aceptables son las afirmaciones de promover la relajación o gestionar el estrés y las de promover la gestión del sueño, como seguir tendencias de sueño. Explícitamente inaceptable es afirmar que un producto ayuda a tratar un trastorno de ansiedad. El primer ejemplo ilustrativo de la propia guía es casi exactamente el núcleo de este producto: una función de software que reproduce música para calmar y relajar a una persona y para gestionar el estrés no es una función de producto sanitario. En cuanto al riesgo, el producto debe ser no invasivo, no implantado y libre de tecnología que plantee un riesgo de seguridad en ausencia de controles regulatorios, y la app satisface las tres condiciones trivialmente.

The new January 2026 optical sensing section is directly on point and is the single most important regulatory development for this product. It states that products using non invasive optical sensing to estimate or infer physiologic parameters, with heart rate variability named explicitly, may be treated as general wellness products provided they are not for diagnosis or treatment, are not intended to substitute for a cleared device, do not include claims, functionality or outputs that prompt or guide specific clinical action, and do not include values that mimic those used clinically unless validated. Such products may display values, ranges, trends, baselines or longitudinal summaries, and may contextualise these outputs in relation to sleep, activity, stress, recovery or similar wellness domains, which describes the app's six dimensions precisely.

La nueva sección de detección óptica de enero de 2026 es directamente pertinente y es el desarrollo regulatorio más importante para este producto. Establece que los productos que usan detección óptica no invasiva para estimar o inferir parámetros fisiológicos, con la VFC nombrada explícitamente, pueden tratarse como productos de bienestar general siempre que no sean para diagnóstico ni tratamiento, no pretendan sustituir a un dispositivo autorizado, no incluyan afirmaciones, funcionalidades ni salidas que inciten o guíen una acción clínica concreta, y no incluyan valores que imiten a los usados clínicamente salvo que estén validados. Tales productos pueden mostrar valores, rangos, tendencias, líneas base o resúmenes longitudinales, y pueden contextualizar esas salidas en relación con el sueño, la actividad, el estrés, la recuperación o dominios de bienestar similares, lo que describe con precisión las seis dimensiones de la app.

The five enumerated disqualifiers from the general wellness safe harbour, and the app's current posture against each.Los cinco descalificadores enumerados del puerto seguro de bienestar general, y la postura actual de la app frente a cada uno.
DisqualifierDescalificador The app todayLa app hoy
Reference to specific diseases, clinical conditions or diagnostic thresholdsReferencia a enfermedades específicas, condiciones clínicas o umbrales diagnósticosNone. Outputs are relaxation, stress, sleep and recovery estimates with confidence bounds and no clinical thresholds.Ninguna. Las salidas son estimaciones de relajación, estrés, sueño y recuperación con límites de confianza y sin umbrales clínicos.
Alerts or prompts recommending clinical actionAlertas o avisos que recomienden acción clínicaNone. No output prompts a clinical action.Ninguna. Ninguna salida incita a una acción clínica.
Treatment guidanceOrientación de tratamientoNone. Breathing technique suggestions are wellness practices with declared evidence levels and hedged copy.Ninguna. Las sugerencias de técnica respiratoria son prácticas de bienestar con niveles de evidencia declarados y texto matizado.
Claims of clinical equivalence, clinical accuracy, medical grade or substitution for an authorised deviceAfirmaciones de equivalencia clínica, exactitud clínica, grado médico o sustitución de un dispositivo autorizadoNone. The disclaimer states verbatim that the app does not diagnose, treat, cure or prevent any illness.Ninguna. El aviso legal declara literalmente que la app no diagnostica, trata, cura ni previene ninguna enfermedad.
An intended use targeting diagnosis, screening, monitoring or management of diseaseUn uso previsto dirigido al diagnóstico, cribado, seguimiento o manejo de una enfermedadNone today. The planned clinical trend layer would change this. See 12.3.Ninguno hoy. La capa de tendencia clínica planificada cambiaría esto. Véase 12.3.

A see a professional nudge is permitted only if it does not name a disease, does not characterise the output as abnormal, pathological or diagnostic, and includes no clinical thresholds. The app's four screen onboarding leads with a statement that this is not a diagnosis, which satisfies that.

Una sugerencia de consultar a un profesional solo se permite si no nombra una enfermedad, no caracteriza la salida como anormal, patológica o diagnóstica y no incluye umbrales clínicos. La introducción de cuatro pantallas de la app abre con la afirmación de que esto no es un diagnóstico, lo que lo satisface.

A secondary guidance sharpens the boundary usefully. The policy for device software functions and mobile medical applications places in its appendix of things that are not devices at all software functions that provide daily motivational tips to reduce stress and promote a positive mental outlook, and that help healthy people track the quantity or quality of their normal sleep patterns. Its second appendix, covering enforcement discretion devices, covers software helping patients with diagnosed psychiatric conditions maintain their behavioural coping skills115. A breathing app for the general population is in the first appendix. The same app marketed to people with diagnosed anxiety is a device, merely unenforced. Marketing language, not code, determines which one this is.

Una guía secundaria afina útilmente la frontera. La política sobre funciones de software de dispositivo y aplicaciones médicas móviles sitúa en su apéndice de cosas que no son dispositivos en absoluto las funciones de software que dan consejos motivacionales diarios para reducir el estrés y promover una actitud mental positiva, y las que ayudan a personas sanas a seguir la cantidad o calidad de sus patrones normales de sueño. Su segundo apéndice, de dispositivos con discrecionalidad de aplicación, cubre el software que ayuda a pacientes con condiciones psiquiátricas diagnosticadas a mantener sus habilidades conductuales de afrontamiento115. Una app de respiración para la población general está en el primer apéndice. La misma app comercializada a personas con ansiedad diagnosticada es un dispositivo, meramente sin exigencia. El lenguaje de marketing, no el código, determina cuál de las dos es.

12.2 European Union: the medical device regulation

12.2 Unión Europea: el reglamento de productos sanitarios

Under the medical device regulation, article 2 paragraph 1 names software in the definition of a medical device, and qualification turns entirely on the manufacturer's stated intended purpose117. Recital 19 is the cleanest carve out and the correct primary citation, stating verbatim that software intended for life style and well being purposes is not a medical device118. The coordination group's guidance, revision one of June 2025, confirms in its section 3.1 that wellness or fitness apps do not qualify as medical device software119. A correction to a common assumption is worth recording: the original October 2019 version of that guidance contains no occurrence of the words lifestyle, wellbeing, well being or wellness at all, so the revision is what carries the point.

Bajo el reglamento de productos sanitarios, el artículo 2 apartado 1 nombra al software en la definición de producto sanitario, y la calificación depende enteramente del propósito previsto declarado por el fabricante117. El considerando 19 es la exención más limpia y la cita primaria correcta, al declarar literalmente que el software destinado a fines de estilo de vida y bienestar no es un producto sanitario118. La guía del grupo de coordinación, revisión uno de junio de 2025, confirma en su sección 3.1 que las apps de bienestar o fitness no califican como software sanitario119. Merece registro una corrección a una suposición habitual: la versión original de octubre de 2019 de esa guía no contiene ninguna aparición de las palabras estilo de vida, bienestar ni wellness, así que es la revisión la que sostiene el punto.

Two structural points a European advisor will raise. First, the classification rule for software is only reached if the product qualifies as a device in the first place, and a wellness app that never qualifies never reaches classification; if it did qualify, that rule would put software intended to monitor physiological processes at class two a, escalating to two b for vital parameters whose variation could result in immediate danger. Second, and more important commercially, in the European Union risk level does not affect qualification. The guidance states that the risk of harm is not a criterion for whether software qualifies as a medical device. Unlike the two part test in the United States, being low risk earns nothing at the qualification stage; only intended purpose matters. The European exposure is therefore governed almost entirely by marketing copy.

Dos puntos estructurales que planteará un asesor europeo. Primero, la regla de clasificación para el software solo se alcanza si el producto califica como producto sanitario en primer lugar, y una app de bienestar que nunca califica nunca llega a clasificarse; si calificara, esa regla situaría al software destinado a vigilar procesos fisiológicos en clase dos a, escalando a dos b para parámetros vitales cuya variación pudiera causar peligro inmediato. Segundo, y más importante en lo comercial, en la Unión Europea el nivel de riesgo no afecta la calificación. La guía establece que el riesgo de daño no es un criterio para determinar si el software califica como producto sanitario. A diferencia de la prueba de dos partes de Estados Unidos, ser de bajo riesgo no aporta nada en la fase de calificación; solo importa el propósito previsto. La exposición europea, por tanto, se gobierna casi por completo con los textos de marketing.

12.3 The clinical trend layer, the highest exposure decision in the roadmap

12.3 La capa de tendencia clínica, la decisión de mayor exposición del plan

The specification commits milestone M4 to depression and anxiety questionnaire trend estimation, framed as clearly labelled non diagnostic wellness estimates. This is the roadmap's largest regulatory exposure and should be treated as a board level decision rather than an engineering one. Under the clinical decision support guidance issued on 29 January 2026, the non device carve out requires all four statutory criteria, and this product fails two of them independently. Criterion three is limited to health care professionals: the guidance states flatly that software functions which support or provide recommendations to patients or caregivers, rather than to professionals, meet the definition of a device, so a consumer facing symptom score can never be non device clinical decision support. Its only escape routes are the general wellness policy or mobile medical application enforcement discretion. Criterion one is triggered by the sensor stream, because the guidance defines a signal acquisition system as one measuring a parameter through continuous, near continuous or otherwise streaming measurement, and a pattern as multiple, sequential or repeated measurements; continuous optical heart rate and variability is a pattern, whereas discrete, episodic or intermittent point in time physiological measurements generally do not by themselves constitute one116. And separately, under the general wellness guidance, a numeric score named after a validated clinical instrument is both a diagnostic threshold and a screening output, which are two of the five enumerated disqualifiers.

La especificación compromete el hito M4 a la estimación de tendencia con cuestionarios de depresión y ansiedad, presentada como estimaciones de bienestar claramente etiquetadas como no diagnósticas. Esta es la mayor exposición regulatoria del plan y debe tratarse como decisión de consejo y no de ingeniería. Bajo la guía de software de apoyo a la decisión clínica emitida el 29 de enero de 2026, la exención de no dispositivo exige los cuatro criterios legales, y este producto incumple dos de ellos de forma independiente. El criterio tres se limita a profesionales sanitarios: la guía establece taxativamente que las funciones de software que apoyan o dan recomendaciones a pacientes o cuidadores, en lugar de a profesionales, cumplen la definición de dispositivo, de modo que una puntuación de síntomas orientada al consumidor nunca puede ser apoyo a la decisión clínica de no dispositivo. Sus únicas vías de escape son la política de bienestar general o la discrecionalidad de aplicación para aplicaciones médicas móviles. El criterio uno se activa por el flujo de sensores, porque la guía define un sistema de adquisición de señal como el que mide un parámetro mediante medición continua, casi continua o en flujo, y un patrón como múltiples mediciones secuenciales o repetidas; la frecuencia cardíaca óptica continua y su variabilidad son un patrón, mientras que las mediciones fisiológicas discretas, episódicas o intermitentes en un instante generalmente no lo constituyen por sí solas116. Y por separado, bajo la guía de bienestar general, una puntuación numérica nombrada como un instrumento clínico validado es a la vez un umbral diagnóstico y una salida de cribado, que son dos de los cinco descalificadores enumerados.

The recommendation for a diligence discussion is direct. The wellness framing is durable for the six current dimensions. It is not durable for an output labelled after a clinical instrument. If the clinical layer ships, the honest options are to drop the instrument names and clinical thresholds entirely and surface only unnamed wellness trends, or to accept device classification and pursue the corresponding pathway. Labelling such an estimate non diagnostic does not by itself preserve the safe harbour, because the disqualifiers are keyed to the presence of clinical thresholds and disease references, not to the disclaimer attached to them.

La recomendación para una discusión de diligencia es directa. El encuadre de bienestar es duradero para las seis dimensiones actuales. No lo es para una salida etiquetada con el nombre de un instrumento clínico. Si la capa clínica se publica, las opciones honestas son eliminar por completo los nombres de los instrumentos y los umbrales clínicos y exponer solo tendencias de bienestar sin nombre, o aceptar la clasificación como producto sanitario y seguir la vía correspondiente. Etiquetar tal estimación como no diagnóstica no preserva por sí solo el puerto seguro, porque los descalificadores se ligan a la presencia de umbrales clínicos y referencias a enfermedades, no al aviso legal adjunto.

12.4 App Store

12.4 App Store

Section 1.4.1 of the review guidelines contains the operationally binding sentence: apps must clearly disclose data and methodology to support accuracy claims relating to health measurements, and if the level of accuracy or methodology cannot be validated, the app will be rejected120. An estimated mood output derived from Watch sensors is a health measurement carrying an implicit accuracy claim. This document is what satisfies that clause, specifically section 10's published ceilings and section 15's per reference limits. Apple's enumerated prohibition targets device sensor only measurement of clinical parameters, naming x rays, blood pressure, body temperature, blood glucose and blood oxygen; mood estimation is not on that list, but the disclose and validate obligation applies regardless. The same section also requires that apps remind users to check with a doctor, which the disclaimer and the second onboarding screen address.

La sección 1.4.1 de las directrices de revisión contiene la frase operativamente vinculante: las apps deben divulgar claramente los datos y la metodología que respaldan las afirmaciones de exactitud relativas a mediciones de salud, y si el nivel de exactitud o la metodología no pueden validarse, la app será rechazada120. Una salida de ánimo estimado derivada de los sensores del reloj es una medición de salud que lleva una afirmación implícita de exactitud. Este documento es lo que satisface esa cláusula, en concreto los techos publicados de la sección 10 y los límites por referencia de la sección 15. La prohibición enumerada de Apple apunta a la medición de parámetros clínicos usando solo sensores del dispositivo, nombrando radiografías, presión arterial, temperatura corporal, glucosa en sangre y oxígeno en sangre; la estimación de ánimo no está en esa lista, pero la obligación de divulgar y validar se aplica igualmente. La misma sección exige además que las apps recuerden a los usuarios consultar con un médico, algo que el aviso legal y la segunda pantalla de introducción atienden.

Section 5.1.3 is the second load bearing clause, in particular the requirement that apps must not write false or inaccurate data into HealthKit. The app currently requests HealthKit share permission only on the watch, for workout sessions used as a continuous sensor mechanism, and it does not write derived mood values. Keeping it that way is the low risk posture, and any future decision to write a derived stress or mood value into HealthKit would newly engage this clause and require accuracy evidence to support it. Apple's HealthKit privacy documentation separately requires that HealthKit use be clear in both marketing text and the user interface, prohibits advertising use and sale to data brokers, and mandates disclosure of what is collected121. The compliance pass documents a panel enumerating each signal and its purpose, a guarantees panel stating that data is not sold, not used for advertising, never leaves the device and is fully erasable, and four corrected usage strings, including one that previously under declared the scope of health data read. That correction is exactly the kind of thing App Review looks for.

La sección 5.1.3 es la segunda cláusula que soporta carga, en particular el requisito de que las apps no escriban datos falsos o inexactos en HealthKit. La app hoy solicita permiso de escritura en HealthKit solo en el reloj, para las sesiones de entrenamiento usadas como mecanismo de sensor continuo, y no escribe valores derivados de ánimo. Mantenerlo así es la postura de bajo riesgo, y cualquier decisión futura de escribir un valor derivado de estrés o ánimo en HealthKit activaría de nuevo esta cláusula y exigiría evidencia de exactitud que la respalde. La documentación de privacidad de HealthKit de Apple exige por separado que el uso de HealthKit sea claro tanto en el texto de marketing como en la interfaz, prohíbe el uso publicitario y la venta a intermediarios de datos, y obliga a divulgar qué se recoge121. El paso de cumplimiento documenta un panel que enumera cada señal y su propósito, un panel de garantías que declara que los datos no se venden, no se usan para publicidad, nunca salen del dispositivo y son completamente borrables, y cuatro cadenas de uso corregidas, incluida una que antes subdeclaraba el alcance de los datos de salud leídos. Esa corrección es exactamente el tipo de cosa que busca la revisión de la App Store.

12.5 The obligation that survives everything else

12.5 La obligación que sobrevive a todo lo demás

The health products compliance guidance of December 2022 is the most commonly overlooked exposure122. The wellness policy may keep the product out of device regulation, but it does not relieve the company of substantiation obligations for any efficacy claim. The January 2026 wellness guidance says so itself: inclusion under the general wellness policy does not establish that a product has been shown to be safe or effective for its intended use. The standard is competent and reliable scientific evidence, defined as tests, analyses, research or studies conducted and evaluated in an objective manner by qualified experts, generally accepted in the profession to yield accurate and reliable results, and sufficient in quality and quantity when considered in light of the entire body of relevant and reliable scientific evidence. The guidance states that as a general matter, substantiation of health related benefits will need to be in the form of randomised, controlled human clinical testing. Its preface confirms it reaches health related apps, and its definition of advertising includes statements or depictions on packaging, labelling and promotional materials, which covers App Store listing copy, screenshots and in app claims and not merely paid media.

La guía de cumplimiento para productos de salud de diciembre de 2022 es la exposición más frecuentemente pasada por alto122. La política de bienestar puede mantener al producto fuera de la regulación de dispositivos, pero no exime a la compañía de sustanciar cualquier afirmación de eficacia. La propia guía de bienestar de enero de 2026 lo dice: la inclusión bajo la política de bienestar general no establece que un producto haya demostrado ser seguro ni eficaz para su uso previsto. El estándar es evidencia científica competente y fiable, definida como pruebas, análisis, investigaciones o estudios realizados y evaluados de manera objetiva por expertos calificados, generalmente aceptados en la profesión por producir resultados exactos y fiables, y suficientes en calidad y cantidad al considerarse a la luz de todo el cuerpo de evidencia científica pertinente y fiable. La guía establece que, como regla general, la sustanciación de beneficios relacionados con la salud deberá adoptar la forma de ensayos clínicos humanos aleatorizados y controlados. Su prefacio confirma que alcanza a las apps relacionadas con la salud, y su definición de publicidad incluye declaraciones o representaciones en el envase, el etiquetado y los materiales promocionales, lo que cubre el texto de la ficha de la App Store, las capturas de pantalla y las afirmaciones dentro de la app, y no solo los medios pagados.

The practical consequence, and the sharpest point in this section: every efficacy claim made about breathing must be traceable to the per technique tier table in section 7.1, and no efficacy claim may be made about the frequencies at all. The regulator has already acted against a seller of specifically formulated frequencies audio. The symbolic badge and the outside scientific evidence copy are not merely good ethics; they are the specific controls that keep the product out of that territory.

La consecuencia práctica, y el punto más afilado de esta sección: toda afirmación de eficacia sobre la respiración debe poder rastrearse hasta la tabla de niveles por técnica de la sección 7.1, y no puede hacerse ninguna afirmación de eficacia sobre las frecuencias en absoluto. El regulador ya ha actuado contra un vendedor de audio de frecuencias específicamente formuladas. La insignia simbólica y el texto de fuera de la evidencia científica no son solo buena ética; son los controles concretos que mantienen al producto fuera de ese territorio.

13. Roadmap, M1 to M7

13. Plan de hitos, de M1 a M7

Seven milestones are specified. Six have signed gates in the tree. M5, physical-device validation, is the remaining engineering gate. The original 2026-08-07 audit recorded none of M1 in the tree; that finding is historical and must not be repeated as current.

Se especifican siete hitos. Seis tienen compuertas firmadas en el árbol. M5, validación en dispositivo físico, es la puerta de ingeniería que queda. La auditoría original del 2026-08-07 registró que no había M1 en el árbol; ese hallazgo es histórico y no debe repetirse como actual.

The six milestones, their scope from the engine specification section 3, their measured status in the tree, and what each unlocks commercially.Los seis hitos, su alcance según la sección 3 de la especificación del motor, su estado medido en el árbol y lo que cada uno desbloquea comercialmente.
MilestoneHito ScopeAlcance Status in treeEstado en el árbol What it unlocksQué desbloquea
M1 FoundationsM1 Fundamentos Four parallel, disjoint work packages with no machine learning. A, a temporal memory engine with multi horizon embedding rollups at 30 seconds, 5 minutes, 1 hour, 4 hours, 24 hours and 7 days, embeddings only. B, a dominance axis completing the three axis affect space, with coordinates for all 17 emotions and the same physiology bound. C, an iOS test target, closing the technical debt item. D, a baseline ring from 28 to 90 days with 7, 30 and 90 day windows and backwards compatible decoding.Cuatro paquetes de trabajo paralelos y disjuntos sin aprendizaje automático. A, un motor de memoria temporal con agregados de embeddings a múltiples horizontes de 30 segundos, 5 minutos, 1 hora, 4 horas, 24 horas y 7 días, solo embeddings. B, un eje de dominancia que completa el espacio afectivo de tres ejes, con coordenadas para las 17 emociones y el mismo límite fisiológico. C, un target de pruebas para iOS, que cierra la deuda técnica. D, un anillo de línea base de 28 a 90 días con ventanas de 7, 30 y 90 días y decodificación compatible hacia atrás. SHIPPED 2026-08-07 Trend features are the prerequisite for everything narrative: a statement that the user has been more regulated this week is a product, whereas a single momentary reading is a gauge. Dominance completes the standard affect space, which matters when talking to anyone who knows the literature. The iOS test target is what makes the larger half of the codebase safe to change.Las señales de tendencia son el prerrequisito de todo lo narrativo: decir que el usuario ha estado más regulado esta semana es un producto, mientras que una lectura momentánea aislada es un medidor. La dominancia completa el espacio afectivo estándar, lo que importa al hablar con quien conozca la literatura. El target de pruebas de iOS es lo que hace segura la modificación de la mitad mayor de la base de código.
M2 Passive sensing and physiological stateM2 Captación pasiva y estado fisiológico HealthKit background delivery entitlement, observer plus anchored queries with persisted anchors, scheduled background inference, a new coordinator mode with a documented battery contract change, passive consent user experience, energy budget instrumentation, signal quality index surfacing, plus fatigue, autonomic balance and circadian alignment estimates.Entitlement de entrega en segundo plano de HealthKit, consultas observadoras y ancladas con anclas persistidas, inferencia programada en segundo plano, un nuevo modo de coordinador con cambio documentado del contrato de batería, experiencia de consentimiento pasivo, instrumentación de presupuesto energético, exposición del índice de calidad de señal, más estimaciones de fatiga, balance autonómico y alineación circadiana. SHIPPED 2026-08-07, battery still unmeasured2026-08-07, batería aún sin medir This is the retention milestone. Today the product only knows the user while they are looking at it. Passive sensing turns it from a tool you open into a companion that has something to tell you, and it is the precondition for the clinical trends of M4. It is also the milestone with the largest privacy and battery surface, which is why the consent experience ships with it and not after.Este es el hito de retención. Hoy el producto solo conoce al usuario mientras este lo está mirando. La captación pasiva lo convierte de una herramienta que se abre en un acompañante que tiene algo que contar, y es la precondición para las tendencias clínicas de M4. Es además el hito con mayor superficie de privacidad y batería, y por eso la experiencia de consentimiento se publica con él y no después.
M3 CoreML pipelineM3 Pipeline de CoreML A Python training repository with WESAD ingestion, chest and wrist channels mapped to the feature schema and electrodermal activity dropped because Apple Watch has no sensor; a physiological state model plus a late fusion cross attention model with confidence aware masking and a three axis head; conversion, quantisation and neural engine compatibility. On the Swift side, a CoreML conformer to the existing engine protocol with the purity contract preserved, a confidence gated fallback to the heuristic, and occlusion based attributions. Plus the extended voice features.Un repositorio de entrenamiento en Python con ingesta de WESAD, canales de pecho y muñeca mapeados al esquema de señales y la actividad electrodérmica descartada porque el Apple Watch no tiene sensor; un modelo de estado fisiológico más un modelo de fusión tardía con atención cruzada, enmascarado consciente de la confianza y una cabeza de tres ejes; conversión, cuantización y compatibilidad con el motor neuronal. En el lado Swift, un conformante de CoreML al protocolo de motor existente con el contrato de pureza intacto, un respaldo heurístico con compuerta de confianza y atribuciones por oclusión. Más las señales de voz extendidas. SHIPPED 2026-08-13, experimental, F1 65.132026-08-13, experimental, F1 65,13 A trained model on public data, still experimental. Wrist-only F1 65.13 versus 66.33 published with EDA. Heuristic fallback remains. Model v2 was measured and not adopted.Un modelo entrenado con datos públicos, sigue experimental. F1 solo muñeca 65,13 frente a 66,33 publicado con EDA. El respaldo heurístico se queda. El modelo v2 se midió y no se adopta.
M4 Neuroacoustic journeysM4 Viajes neuroacústicos Adaptive journeys with binaural beats and isochronic tones, breathing overlay, Apple Music optional, evidence and symbolic layers strictly separated.Viajes adaptativos con beats binaurales y tonos isócronos, capa de respiración, Apple Music opcional, capas de evidencia y simbólico estrictamente separadas. SHIPPED 2026-08-07 Accompaniment that is not a single sine. CPU cost on a real S9 is still M5 (TD9).Acompañamiento que no es un seno único. El coste de CPU en un S9 real sigue siendo M5 (TD9).
M7 Clinical trend engineM7 Motor de tendencia clínica Momentary to daily to weekly aggregation on temporal memory; wellness trend estimates with confidence, contributing factors, explicit non diagnostic framing and an in app scientific references section. Renamed from spec M4.Agregación de momento a día a semana sobre la memoria temporal; estimaciones de tendencia de bienestar con confianza, factores contribuyentes, encuadre explícitamente no diagnóstico y una sección de referencias científicas dentro de la app. Renombrado del M4 de la spec. SHIPPED 2026-08-14 The commercially largest step and the legally riskiest. See section 12.3. Copy audit 0 violations.El paso comercialmente mayor y el legalmente más arriesgado. Véase la sección 12.3. Auditoría de copy 0 violaciones.
M5 Energy and device validationM5 Energía y validación en dispositivo On device measurement of battery, thermal, memory and neural engine utilisation; dynamic sampling tuning; low power mode behaviour; neuroacoustic CPU. Requires physical devices.Medición en dispositivo de batería, comportamiento térmico, memoria y uso del motor neuronal; ajuste dinámico del muestreo; comportamiento en modo de bajo consumo; CPU neuroacústica. Requiere dispositivos físicos. OPEN the remaining engineering gatela puerta de ingeniería que queda Nothing about background inference or ANE residency is credible until someone has measured a day of it on a real watch.Nada sobre la inferencia en segundo plano o la residencia ANE es creíble hasta que alguien haya medido un día de ella en un reloj real.
M6 Personal learningM6 Aprendizaje personal On device four-parameter correction from self report. Federated learning explicitly deferred. Tier 2 ridge withdrawn. Safe on K-EmoCon, not useful (R7).Corrección de cuatro parámetros en el dispositivo a partir del autorreporte. Aprendizaje federado explícitamente aplazado. Tier 2 retirado. Segura en K-EmoCon, no útil (R7). SHIPPED 2026-08-19 Personalization without a server exists. It does not yet recover a person's own self-report better than that person's median.Existe personalización sin servidor. Aún no recupera el autorreporte de la persona mejor que la mediana de esa persona.

13.1 Risks and technical debt, as the project itself records them

13.1 Riesgos y deuda técnica, según los registra el propio proyecto

Risks R1 to R5 and technical debt TD1 to TD4, from PROJECT_STATUS.md:23-36, each with an independent verification note.Riesgos R1 a R5 y deuda técnica TD1 a TD4, de PROJECT_STATUS.md:23-36, cada uno con una nota de verificación independiente.
ItemÍtem Statement and mitigationEnunciado y mitigación VerifiedVerificado
R1Wrist only accuracy on the benchmark dataset is modest, so the future model may only qualify as an experimental tier. Mitigated by the heuristic fallback plus honest confidence, and a gated ship.La exactitud solo con muñeca en el conjunto de referencia es modesta, así que el modelo futuro podría calificar solo como nivel experimental. Mitigado con el respaldo heurístico más confianza honesta y una publicación con compuerta.Confirmed: the specification already states the dataset's limits plainly, and section 10.2 quantifies the ceiling.Confirmado: la especificación ya declara con claridad los límites del conjunto de datos, y la sección 10.2 cuantifica el techo.
R2Background sensing battery cost is unknown until the hardware pass. Mitigated by shipping budget instrumentation with M2 rather than after it.El costo de batería de la captación en segundo plano es desconocido hasta la pasada en hardware. Mitigado publicando la instrumentación de presupuesto con M2 y no después.Confirmed, and it interacts with R4.Confirmado, e interactúa con R4.
R3Questionnaire style estimation invites App Store scrutiny. Mitigated by wellness framing, in app citations, confidence gating and no notifications.La estimación estilo cuestionario atrae escrutinio de la App Store. Mitigado con encuadre de bienestar, citas dentro de la app, compuerta de confianza y ausencia de notificaciones.Confirmed, but understated. Section 12.3 shows the exposure is federal regulatory as well as App Store.Confirmado, pero subestimado. La sección 12.3 muestra que la exposición es también regulatoria federal y no solo de la App Store.
R4No physical device validation yet for v1 sensing.Aún no hay validación en dispositivo físico para la captación v1.Confirmed, still true.Confirmado, sigue siendo cierto.
R5The baseline migration in M1-D must decode existing users' 28 day files. Mitigated by explicit compatibility tests.La migración de línea base de M1-D debe decodificar los archivos de 28 días de los usuarios existentes. Mitigado con pruebas explícitas de compatibilidad.Closed with M1-D. Compat tests shipped.Cerrado con M1-D. Pruebas de compatibilidad publicadas.
R6The CoreML gate is an exposure cap, not a skill selector. Heuristic fallback does not specifically protect people the model serves worst.La compuerta CoreML es un tope de exposición, no un selector de pericia. El respaldo heurístico no protege de forma específica a las personas a las que el modelo sirve peor.OPEN. Measured 2026-08-17. τ 0.50/0.45 unchanged.ABIERTO. Medido 2026-08-17. τ 0,50/0,45 sin cambio.
R7The embedded VAD head has no linear relationship with valence/arousal self-report on K-EmoCon. Personal correction is safe, not useful.La cabeza VAD embarcada no tiene relación lineal con el autorreporte de valencia/activación en K-EmoCon. La corrección personal es segura, no útil.OPEN. Measured 2026-08-19.ABIERTO. Medido 2026-08-19.
TD1iOS only services and view models are untested, closing via M1-C.Los servicios y view models exclusivos de iOS no están probados, se cierra con M1-C.Closed. NewMeHertziOSTests, 364 tests.Cerrado. NewMeHertziOSTests, 364 pruebas.
TD2The architecture and implementation plan documents are stale versus the mood estimation document.Los documentos de arquitectura y de plan de implementación están desfasados respecto al documento de estimación de ánimo.Verified: still true, and the readme is stale too, which the list does not mention. See section 14.5.Verificado: sigue siendo cierto, y el archivo léame también lo está, algo que la lista no menciona. Véase la sección 14.5.
TD3A stray workspace file at the repository root and in the watch folder, to be deleted at the M1 review.Un archivo de espacio de trabajo suelto en la raíz del repositorio y en la carpeta del reloj, a eliminar en la revisión de M1.Verified: still present at the root.Verificado: sigue presente en la raíz.
TD4A lock is used on the render thread, an accepted proof of concept risk to be revisited with an atomics package.Se usa un cerrojo en el hilo de render, un riesgo aceptado de prueba de concepto a revisar con un paquete de atómicos.Verified: three locks in the tone engine plus two in the interruption coordinator. The risk is real but small, since the critical section is two or three scalar reads, meaning nanoseconds. Note the trade: adopting the atomics package would introduce the project's first external dependency, which the no third party code positioning has to weigh.Verificado: tres cerrojos en el motor de tonos más dos en el coordinador de interrupciones. El riesgo es real pero pequeño, ya que la sección crítica son dos o tres lecturas escalares, es decir nanosegundos. Obsérvese la contrapartida: adoptar el paquete de atómicos introduciría la primera dependencia externa del proyecto, algo que el posicionamiento de cero código de terceros debe sopesar.

Finally, the pre existing hardware checklist is still open and should be presented as a known unknown rather than omitted: real speaker tone quality and volume across the whole 285 to 963 hertz range; absence of clicks on start, pause, stop and gain changes; Digital Crown detent sensitivity in both of its contexts; the six haptics as felt rather than as coded; wrist down and dimmed screen behaviour; battery draw over a five minute session; and legibility at both 42 and 46 millimetres.

Por último, la lista de verificación de hardware preexistente sigue abierta y debe presentarse como una incógnita conocida y no omitirse: calidad y volumen reales del tono en el altavoz en todo el rango de 285 a 963 hercios; ausencia de clics al iniciar, pausar, detener y al cambiar la ganancia; sensibilidad de las muescas de la Digital Crown en sus dos contextos; los seis hápticos tal como se sienten y no tal como se codificaron; comportamiento con la muñeca baja y la pantalla atenuada; consumo de batería en una sesión de cinco minutos; y legibilidad tanto a 42 como a 46 milímetros.

14. Known discrepancies and defects

14. Discrepancias y defectos conocidos

This section is a credibility asset. Subsections 14.1 to 14.3 are the original 2026-08-07 audit, left intact so a reader can see what was found then. Subsection 14.0 states what has closed since.

Esta sección es un activo de credibilidad. Las subsecciones 14.1 a 14.3 son la auditoría original del 2026-08-07, intactas para que un lector vea lo que se halló entonces. La subsección 14.0 declara lo que se ha cerrado desde entonces.

14.0 Status as of 2026-08-20

14.0 Estado al 2026-08-20

Closed since the original audit. D1 test-count drift is now 2,356 + 364, recorded from the tree. D2 M1 absent is closed: temporal memory, dominance, iOS tests and 90-day baselines all ship. D5 README describing a watch-only PoC is closed (refreshed at 0.4.0). E3 erase path now has EraseAllSyncTests. E4 iOS test target exists. E5 "exactly one commit" is closed (hundreds of commits); CI still does not exist. F8 "no binaural in the codebase" is closed by M4. TD1 and TD3 (stray workspace) are closed. The heuristic-only claim in section 1.2 is closed by M3.

Cerrado desde la auditoría original. D1, deriva del recuento de pruebas, es ahora 2.356 + 364, registrado del árbol. D2, M1 ausente, está cerrado: memoria temporal, dominancia, tests iOS y líneas base de 90 días se publican. D5, el léame que describía un PoC solo de reloj, está cerrado (refresco en 0.4.0). E3, la ruta de borrado ahora tiene EraseAllSyncTests. E4, el target de pruebas iOS existe. E5, "exactamente un commit", está cerrado (cientos de commits); la CI sigue sin existir. F8, "no hay binaural en el código", lo cierra M4. TD1 y TD3 (espacio de trabajo suelto) están cerrados. La afirmación de solo heurística en la sección 1.2 la cierra M3.

Still open, and still load bearing. E1 public-privacy health logging, if that line still interpolates as public. E2 no privacy manifest. E5 no CI. R2/R4/M5 no physical hardware pass. R6 gate anti-selectivity. R7 VAD head versus self-report. The citation findings F1 to F10 in 14.3 were not re-checked against the specification in this refresh; F1 (author order) still appears in EMOTION_ENGINE_V2_SPEC.md as "Nguyen et al. 2024".

Sigue abierto, y sigue cargando peso. E1, registro de salud con privacidad pública, si esa línea sigue interpolando como pública. E2, sin manifiesto de privacidad. E5, sin CI. R2/R4/M5, sin pase en hardware físico. R6, anti-selectividad de la compuerta. R7, cabeza VAD frente al autorreporte. Los hallazgos de citación F1 a F10 de 14.3 no se volvieron a contrastar con la especificación en este refresco; F1 (orden de autores) sigue apareciendo en EMOTION_ENGINE_V2_SPEC.md como "Nguyen et al. 2024".

14.1 Documentation versus code

14.1 Documentación frente a código

Discrepancies between the project's own documentation and the measured tree at commit 4dedd92.Discrepancias entre la propia documentación del proyecto y el árbol medido en el commit 4dedd92.
# DiscrepancyDiscrepancia What the code actually showsQué muestra realmente el código SeverityGravedad
D1 The test count is stated as 1,251 in five documents.El recuento de pruebas se declara como 1.251 en cinco documentos. Measured today: 1,265, with zero failures. The number moved in the right direction, but the milestone gate that says the baseline suite must stay green now refers to a figure that no longer matches the tree, which slightly weakens the gate. The fix is to re baseline the figure and, better, to print it from the test run rather than transcribing it. One document additionally claims 224 pre existing tests remain intact, a decomposition that is not verifiable from a single commit repository.Medido hoy: 1.265, con cero fallos. El número se movió en la dirección correcta, pero la compuerta de hito que exige que la batería de línea base siga en verde se refiere ahora a una cifra que ya no coincide con el árbol, lo que debilita levemente la compuerta. La corrección es reajustar esa cifra de línea base y, mejor aún, imprimirla desde la ejecución de pruebas en lugar de transcribirla. Un documento afirma además que 224 pruebas preexistentes siguen intactas, una descomposición no verificable desde un repositorio de un solo commit. Low, and it favours the productBaja, y favorece al producto
D2 M1 is reported as launched but no M1 code exists.M1 se reporta como lanzado pero no existe código de M1. Four worktrees at branches for work packages A through D all sit at commit 4dedd92, the same and only commit as the main branch, with no commits of their own. Verified absent symbol by symbol: no temporal memory directory and no embedding symbol for A; no dominance field and no three axis coordinates for B; no iOS test target in the project file and the iOS scheme's test block still has no targets for C; and the baseline ring capacity is still 28 with no 7, 30 or 90 day window statistics for D. Launched is defensible as branch created and agent dispatched, but a reader will hear work in progress with code landing.Cuatro worktrees en ramas de los paquetes A a D están todos en el commit 4dedd92, el mismo y único commit que la rama principal, sin commits propios. Verificado ausente símbolo por símbolo: sin directorio de memoria temporal ni símbolo de embedding para A; sin campo de dominancia ni coordenadas de tres ejes para B; sin target de pruebas de iOS en el archivo de proyecto y el bloque de pruebas del esquema de iOS sigue sin targets para C; y la capacidad del anillo de línea base sigue siendo 28 sin estadísticas de ventana de 7, 30 ni 90 días para D. Lanzado es defendible como rama creada y agente despachado, pero un lector entenderá trabajo en curso con código aterrizando. High for communication, zero for the codeAlta para la comunicación, nula para el código
D3 The frequency uniqueness claim is one property short of what a test enforces.La afirmación de unicidad de frecuencias está una propiedad por debajo de lo que impone la prueba. The architecture note claims a test blocks all three properties: ascending, unique and within 200 to 1000 hertz. The test asserts that the frequency array equals its sorted version and that values lie in range. Equality with the sorted array is satisfied by a non strictly ascending sequence, so uniqueness is not asserted, and the loader does not check it either. The shipped data does satisfy all three, so this is a guard gap and not a data defect. The fix is a single assertion line comparing the count of the set of frequencies with the count of the array.La nota de arquitectura afirma que una prueba bloquea las tres propiedades: ascendente, única y dentro de 200 a 1000 hercios. La prueba afirma que el arreglo de frecuencias es igual a su versión ordenada y que los valores están en rango. La igualdad con el arreglo ordenado se satisface con una secuencia no estrictamente ascendente, así que la unicidad no se afirma, y el cargador tampoco la comprueba. Los datos publicados sí satisfacen las tres, así que es un hueco de guarda y no un defecto de datos. La corrección es una sola línea de aserción que compare el tamaño del conjunto de frecuencias con el del arreglo. Low, but it must be worded correctly in any external documentBaja, pero debe redactarse correctamente en cualquier documento externo
D4 The feature schema count is stated as about 45.El recuento del esquema de señales se declara como unos 45. It is 48, counted by grepping the static identifier declarations in the sensor feature file. Trivial, but the correct figure is 48 and the counting method should be stated.Son 48, contados con una búsqueda de las declaraciones de identificador estático en el archivo de señales. Trivial, pero la cifra correcta es 48 y el método de conteo debe declararse. TrivialTrivial
D5 The readme and the implementation plan describe a product that no longer exists.El léame y el plan de implementación describen un producto que ya no existe. The readme describes the product as a watch only proof of concept for browsing 17 emotions and playing a tone; it is now a two app product with a five tab iPhone app, a mood estimation engine and a breathing studio. The readme also states that the proof of concept persists no data; there are seven persistence stores and three preference namespaces. The implementation plan lists persistence as a future step and recommends a framework that the architecture document explicitly decided against, so the two documents contradict each other, and the plan's phase table stops three major feature waves behind. None of this affects the code, but it does mean the repository's front door misrepresents the product, which matters if an investor's engineer starts reading there.El léame describe el producto como una prueba de concepto solo para reloj que permite recorrer 17 emociones y reproducir un tono; hoy es un producto de dos apps con una app de iPhone de cinco pestañas, un motor de estimación de ánimo y un estudio de respiración. El léame afirma además que la prueba de concepto no persiste ningún dato; hay siete almacenes de persistencia y tres espacios de nombres de preferencias. El plan de implementación lista la persistencia como paso futuro y recomienda un framework que el documento de arquitectura descartó explícitamente, de modo que los dos documentos se contradicen, y la tabla de fases del plan se detiene tres oleadas de funcionalidad por detrás. Nada de esto afecta el código, pero significa que la puerta de entrada del repositorio tergiversa el producto, lo que importa si el ingeniero de un inversor empieza a leer ahí. Medium for diligence opticsMedia para la óptica de diligencia
D6 Erase all my data does not erase all data.Borrar todos mis datos no borra todos los datos. The method clears consents, the personal baseline, self reports and correction biases, location anchors and HealthKit query anchors. It does not clear session history, breath sessions, breath learning, the breath safety profile, the preference keys including the disclaimer seen flag, or the health onboarding seen flag. The mitigating fact is that the dialog copy is honest about the narrower scope, promising consents, personal baseline, self reports and labelled places rather than everything, so this is a scope decision correctly described in the interface, and it is the documentation summary that overstates it. The feature should be described as erasing the inference profile. A second erase everything affordance is worth an explicit product decision either way. Related: the method has no direct unit test.El método borra los consentimientos, la línea base personal, los autorreportes y sesgos de corrección, los anclajes de ubicación y las anclas de consulta de HealthKit. No borra el historial de sesiones, las sesiones de respiración, el aprendizaje respiratorio, el perfil de seguridad respiratoria, las claves de preferencias incluida la bandera de aviso visto ni la bandera de introducción de salud vista. El hecho atenuante es que el texto del diálogo es honesto sobre el alcance más estrecho, prometiendo consentimientos, línea base personal, autorreportes y lugares etiquetados en lugar de todo, así que es una decisión de alcance correctamente descrita en la interfaz, y es el resumen de la documentación el que la exagera. La función debería describirse como borrado del perfil de inferencia. Una segunda opción de borrar todo merece una decisión explícita de producto en cualquier dirección. Relacionado: el método no tiene prueba unitaria directa. Medium: a documentation defect rather than a product defectMedia: un defecto de documentación y no de producto
D7 Consent mirroring is one directional, from the iPhone to the watch.El espejado de consentimientos es unidireccional, del iPhone al reloj. The project note records only that the consent mirror requires an active pairing. In fact the update and apply routines are invoked only from the iOS side; the watch's own consent setter writes locally and requests HealthKit authorization but never publishes to the application context, and the watch never applies synced consents. A consent toggled on the watch does not propagate to the phone. This is not a privacy hole, since the failure mode is a narrower grant rather than a wider one, but it is a user experience inconsistency that should be documented or fixed.La nota del proyecto solo registra que el espejo de consentimientos requiere un emparejamiento activo. En realidad las rutinas de actualización y aplicación se invocan solo desde el lado de iOS; el fijador de consentimiento del reloj escribe localmente y solicita autorización de HealthKit pero nunca publica al contexto de aplicación, y el reloj nunca aplica consentimientos sincronizados. Un consentimiento activado en el reloj no se propaga al teléfono. No es un agujero de privacidad, ya que el modo de fallo es una concesión más estrecha y no más amplia, pero es una incoherencia de experiencia que debe documentarse o corregirse. Medium for user experience, none for privacyMedia para la experiencia, nula para la privacidad

14.2 Defects and gaps in the code

14.2 Defectos y huecos en el código

Code level findings from the audit, each with its location and recommended action.Hallazgos a nivel de código de la auditoría, cada uno con su ubicación y la acción recomendada.
# FindingHallazgo LocationUbicación Severity and actionGravedad y acción
E1 Health values are logged with public privacy. Heart rate, resting heart rate and SDNN values are printed into the unified log as public, which makes them readable through a log stream from a paired Mac. Everything else in the app is scrupulous about this; this one line is not.Los valores de salud se registran con privacidad pública. Los valores de frecuencia cardíaca, frecuencia en reposo y SDNN se imprimen en el registro unificado como públicos, lo que los hace legibles mediante un flujo de registro desde un Mac emparejado. Todo lo demás en la app es escrupuloso con esto; esta línea no. HealthMetricsService.swift:311-318 Highest of the code findings. Change the interpolation to private or redact the values. It is a one line fix and it is the only place raw health numbers leave app memory into a system facility.La mayor de las de código. Cambiar la interpolación a privada o redactar los valores. Es una corrección de una línea y es el único lugar donde números de salud en bruto salen de la memoria de la app hacia un servicio del sistema.
E2 There is no privacy manifest file in the repository. With zero third party software development kits and no tracking, the required reason declarations would be short, since preference storage is the one required reason interface family in use.No hay archivo de manifiesto de privacidad en el repositorio. Sin kits de desarrollo de terceros y sin rastreo, las declaraciones de motivo requerido serían breves, ya que el almacenamiento de preferencias es la única familia de interfaz de motivo requerido en uso. absent from the whole treeausente de todo el árbol Blocking for App Store submission. Cheap to add and it should be added before any submission attempt.Bloqueante para la presentación a la App Store. Barato de añadir y debe añadirse antes de cualquier intento de presentación.
E3 The erase path has no direct unit test. A grep for the method name across the test folder returns nothing.La ruta de borrado no tiene prueba unitaria directa. Una búsqueda del nombre del método en la carpeta de pruebas no devuelve nada. MoodStateViewModel.eraseAllData() Medium. The eight step sequence is exactly the kind of thing that regresses silently, and it is the most privacy sensitive path in the product.Media. La secuencia de ocho pasos es justo el tipo de cosa que sufre regresiones en silencio, y es la ruta más sensible en privacidad del producto.
E4 No iOS test target exists, so all 1,265 tests run on watchOS and the 25,218 lines of iOS only code have zero automated coverage.No existe target de pruebas de iOS, así que las 1.265 pruebas se ejecutan en watchOS y las 25.218 líneas de código exclusivo de iOS tienen cobertura automatizada cero. project.yml:191-197, :222-224 The largest gap in the project. Scoped as work package M1-C, which has not started.El mayor hueco del proyecto. Planificado como paquete de trabajo M1-C, que no ha comenzado.
E5 There is no continuous integration of any kind: no workflow directory, no pipeline configuration, no build script and no release tooling. The repository has exactly one commit.No hay integración continua de ningún tipo: sin directorio de flujos de trabajo, sin configuración de canalización, sin script de compilación y sin herramientas de publicación. El repositorio tiene exactamente un commit. repository widetodo el repositorio Medium, and the single cheapest gap to close: roughly a day of work given that the project generates reproducibly and the suite runs in forty seconds.Media, y el hueco más barato de cerrar: aproximadamente un día de trabajo dado que el proyecto se genera de forma reproducible y la batería se ejecuta en cuarenta segundos.
E6 The test bundle identifier lookup is dead. A test looks up a bundle identifier that no longer matches the identifier the project file sets for the watch target; the tests pass only because of a fallback to the main bundle.La búsqueda del identificador de bundle en pruebas está muerta. Una prueba busca un identificador de bundle que ya no coincide con el que el archivo de proyecto fija para el target del reloj; las pruebas pasan solo por el respaldo al bundle principal. Tests/EmotionCatalogTests.swift:101 versus project.yml:85 Low, but it means a test that looks specific is silently generic.Baja, pero significa que una prueba que parece específica es en silencio genérica.
E7 Stale code comments reference pre compliance copy. The compliance pass replaced the feedback prompt, but two comments still quote the old string, even though the compliance checklist claims a clean final search.Comentarios de código desfasados que citan textos anteriores al cumplimiento. El paso de cumplimiento reemplazó la pregunta de retroalimentación, pero dos comentarios siguen citando la cadena antigua, aunque la lista de verificación de cumplimiento afirma una búsqueda final limpia. MoodStateViewModel.swift:88 and :180 Cosmetic, flagged only because the compliance checklist claims otherwise.Cosmética, señalada solo porque la lista de cumplimiento afirma lo contrario.
E8 A stray workspace file remains at the repository root, and a duration range constant is duplicated as a separate constant in two places rather than sourced from one.Queda un archivo de espacio de trabajo suelto en la raíz del repositorio, y una constante de rango de duración está duplicada como constante separada en dos lugares en vez de tener una sola fuente. repository root; journey recommendations versus the journey typeraíz del repositorio; recomendaciones de viaje frente al tipo de viaje Trivial, but the duplicated constant is a single source of truth drift risk.Trivial, pero la constante duplicada es un riesgo de deriva respecto a una única fuente de verdad.

14.3 Citation errors in the project's own science section

14.3 Errores de citación en la propia sección científica del proyecto

These were found by verifying every citation in the engine specification against the primary record. Four are must fix, and they are must fix precisely because a citation that is real but load bearing beyond its evidence is as dangerous as a fake one.

Estos se hallaron verificando cada cita de la especificación del motor contra el registro primario. Cuatro son de corrección obligatoria, y lo son precisamente porque una cita real pero que soporta más peso del que su evidencia permite es tan peligrosa como una falsa.

Citation findings F1 to F10 from the evidence verification pass, with the location in the specification or the data files.Hallazgos de citación F1 a F10 de la pasada de verificación de evidencia, con su ubicación en la especificación o en los archivos de datos.
# FindingHallazgo LocationUbicación SeverityGravedad
F1 The citation given as Mehrabian and Russell 1977 does not exist. Verification against Mehrabian's own publication list confirms only two 1977 Russell and Mehrabian papers, both with Russell as first author; Mehrabian first applies only to the 1974 book. Line 51 of the same file cites the work correctly, so the file is internally inconsistent.La cita dada como Mehrabian y Russell 1977 no existe. La verificación contra la propia lista de publicaciones de Mehrabian confirma solo dos artículos de 1977 de Russell y Mehrabian, ambos con Russell como primer autor; Mehrabian primero se aplica solo al libro de 1974. La línea 51 del mismo archivo cita la obra correctamente, de modo que el archivo es internamente incoherente. EMOTION_ENGINE_V2_SPEC.md:71 MUST FIX. Change to Russell and Mehrabian 1977.CORRECCIÓN OBLIGATORIA. Cambiar a Russell y Mehrabian 1977.
F2 The facial action coding manual is cited as warrant for facial to emotion inference. That manual is a descriptive anatomical coding scheme for facial action units and licenses no emotion inference whatsoever; conflating the detection of an action unit with the presence of an emotion is exactly the move the 2019 critique dismantles.El manual de codificación de acción facial se cita como garantía de la inferencia de emoción a partir del rostro. Ese manual es un esquema descriptivo de codificación anatómica de unidades de acción facial y no autoriza ninguna inferencia emocional; confundir la detección de una unidad de acción con la presencia de una emoción es exactamente el movimiento que desmonta la crítica de 2019. EMOTION_ENGINE_V2_SPEC.md:75 MUST FIX. Stop citing it for that purpose, cite the basic emotions argument paper for the theoretical claim, and add the 2019 critique alongside it.CORRECCIÓN OBLIGATORIA. Dejar de citarlo con ese fin, citar el artículo del argumento de emociones básicas para la afirmación teórica y añadir junto a él la crítica de 2019.
F3 A reference given as healthcare explainable artificial intelligence surveys is not a citation at all: it has no author, no year and no title.Una referencia dada como encuestas de inteligencia artificial explicable en salud no es una cita en absoluto: no tiene autor, ni año, ni título. EMOTION_ENGINE_V2_SPEC.md:78 Should fix. Replace with an actual reference.Debería corregirse. Sustituir por una referencia real.
F4 The 2019 facial expression critique is absent from the specification entirely. The critique literature is the single strongest credibility asset available on the facial surface, and the code already reflects its conclusions.La crítica de 2019 sobre expresión facial está totalmente ausente de la especificación. La literatura crítica es el activo de credibilidad más fuerte disponible en la superficie facial, y el código ya refleja sus conclusiones. EMOTION_ENGINE_V2_SPEC.md science sectionsección científica Should add. It strengthens rather than weakens the document.Debería añadirse. Fortalece el documento en lugar de debilitarlo.
F5 A fifteen study narrative review of generic slow breathing is used as the sole reference for eight of the fourteen techniques, including two hyperventilatory ones that are not slow breathing at all. Its authors state that heterogeneity prevented pooling, so it reports no effect size and can carry no per technique claim.Una revisión narrativa de quince estudios sobre respiración lenta genérica se usa como única referencia de ocho de las catorce técnicas, incluidas dos hiperventilatorias que no son respiración lenta en absoluto. Sus autores afirman que la heterogeneidad impidió agrupar los resultados, así que no reporta tamaño de efecto y no puede sostener ninguna afirmación por técnica. Resources/BreathingReferences.json Should fix. Re source the eight techniques.Debería corregirse. Reasignar fuentes a las ocho técnicas.
F6 The physiological sigh science summary states that cyclic sighing beat the other two breathing patterns compared. The trial found no significant between breathwork differences and the authors state the arms were too small to power those comparisons. The in app reference summary for the same study is more careful and is correct.El resumen científico del suspiro fisiológico afirma que el suspiro cíclico superó a las otras dos pautas respiratorias comparadas. El ensayo no halló diferencias significativas entre las ramas de respiración y los autores afirman que las ramas eran demasiado pequeñas para dar potencia a esas comparaciones. El resumen de referencia dentro de la app para el mismo estudio es más cuidadoso y es correcto. Resources/BreathingTechniques.json Should soften to match what the trial actually found.Debería suavizarse para coincidir con lo que el ensayo halló realmente.
F7 Two techniques are declared documented when the evidence supports a lower tier. The diaphragmatic technique rests on a quasi randomised study with a passive no treatment control. Pursed lip breathing is genuinely well documented, but for chronic obstructive pulmonary disease breathlessness rather than for mood, and it is filed under the calming category.Dos técnicas se declaran documentadas cuando la evidencia sostiene un nivel inferior. La técnica diafragmática descansa en un estudio cuasi aleatorizado con control pasivo sin tratamiento. La respiración con labios fruncidos está genuinamente bien documentada, pero para la disnea en la enfermedad pulmonar obstructiva crónica y no para el ánimo, y está clasificada como calmante. Resources/BreathingTechniques.json Should review both labels.Deberían revisarse ambas etiquetas.
F8 The journey duration bands cite entrainment protocols for a stimulus that contains no entrainment. The cited source documents derive their durations from brainwave entrainment at 0.1 hertz, an individual alpha frequency, 6 hertz, 1 hertz bilateral and 40 hertz; the app generates a single sine carrier and there is no binaural, isochronic or beat frequency generation anywhere in the codebase.Las bandas de duración del viaje citan protocolos de arrastre para un estímulo que no contiene arrastre alguno. Los documentos fuente citados derivan sus duraciones del arrastre de ondas cerebrales a 0,1 hercios, una frecuencia alfa individual, 6 hercios, 1 hercio bilateral y 40 hercios; la app genera una única portadora sinusoidal y no hay generación binaural, isocrónica ni de frecuencia de batido en ninguna parte del código. FrequencyJourney.swift:41-66 Should fix, provenance only. Keep the durations, re label them as a product safety heuristic and drop the citations.Debería corregirse, solo la procedencia. Conservar las duraciones, reetiquetarlas como heurística de seguridad de producto y eliminar las citas.
F9 The hyperventilatory contraindication notes may lack an explicit never in or near water warning. The verified literature strongly supports one, and the best available randomised trial supplies directly quotable wording, instructing participants to practise only in a safe environment away from water and hard ground. The repository's notes end with a framing disclaimer instead.Las notas de contraindicación de las técnicas hiperventilatorias podrían carecer de una advertencia explícita de nunca dentro ni cerca del agua. La literatura verificada la respalda con fuerza, y el mejor ensayo aleatorizado disponible aporta redacción directamente citable, instruyendo a los participantes a practicar solo en un entorno seguro lejos del agua y de superficies duras. Las notas del repositorio terminan en cambio con un aviso de encuadre. Resources/BreathingTechniques.json SHOULD FIX, safety. This is the highest priority item in this table after the two must fix citations.DEBERÍA CORREGIRSE, seguridad. Es el ítem de mayor prioridad de esta tabla tras las dos citas de corrección obligatoria.
F10 The shipping gate for the machine learning milestone is stated qualitatively. It resolves to a concrete number, F1 66.33, which the app cannot reach because it drops the electrodermal channel that the published wrist result includes.La compuerta de publicación del hito de aprendizaje automático se enuncia de forma cualitativa. Se resuelve a un número concreto, F1 66,33, que la app no puede alcanzar porque descarta el canal electrodérmico que el resultado publicado de muñeca sí incluye. EMOTION_ENGINE_V2_SPEC.md:59 Should quantify, so the gate becomes testable.Debería cuantificarse, para que la compuerta sea comprobable.

Two further citation corrections belong here because they were found in the same pass and are load bearing in the specification's science section. First, the in the wild facial study is cited with the wrong first author: it is cited as Nguyen and colleagues 2024, but the first author is Subigya Nepal, and there is no Nguyen in the author list at all. This is the specification's only in the wild facial citation, so the misattribution matters. Its reported performance should also be written in, because balanced accuracy of 0.60 against a 0.52 baseline, a correlation coefficient of 0.14 and no healthy controls in an 83.6 percent white female cohort supports trend level and exploratory use at most136. Second, the sleep and mood claim cites the wrong paper for the claim made: the 2016 meta analysis is of cross sectional polysomnographic case control studies, carries no temporal information at all and measures an exposure the app cannot measure, so it cannot support a forward looking claim that sleep disruption predicts mood137. The 2011 meta analysis of longitudinal epidemiological studies, with a pooled odds ratio of 2.60, is the paper that supports prediction138. The recommended fix is to cite both with their roles made explicit.

Otras dos correcciones de citación corresponden aquí porque se hallaron en la misma pasada y soportan peso en la sección científica de la especificación. Primera, el estudio facial en entorno real se cita con el primer autor equivocado: se cita como Nguyen y colegas 2024, pero el primer autor es Subigya Nepal, y no hay ningún Nguyen en la lista de autores. Es la única cita facial en entorno real de la especificación, así que la atribución errónea importa. También debería escribirse su rendimiento reportado, porque una exactitud equilibrada de 0,60 frente a una línea base de 0,52, un coeficiente de correlación de 0,14 y ningún control sano en una cohorte 83,6 por ciento de mujeres blancas sostiene como mucho un uso exploratorio a nivel de tendencia136. Segunda, la afirmación sobre sueño y ánimo cita el artículo equivocado para lo que afirma: el metaanálisis de 2016 es de estudios de casos y controles polisomnográficos transversales, no lleva información temporal alguna y mide una exposición que la app no puede medir, así que no puede sostener una afirmación prospectiva de que la disrupción del sueño predice el ánimo137. El metaanálisis de 2011 de estudios epidemiológicos longitudinales, con una razón de probabilidades agrupada de 2,60, es el artículo que sostiene la predicción138. La corrección recomendada es citar ambos con sus papeles explícitos.

One more caution is worth recording rather than hiding. The specification cites two digital phenotyping papers as the basis for passive sensing. Both are real and correctly attributed, but both are opinion pieces, a perspective article and a journal viewpoint, with no methods and no results. They define the field; they do not evidence it, and citing them as a basis overstates what an editorial can be a basis for. Usefully for this document, one of those authors writes himself that it is not clear whether smartphone measures will prove better at predicting clinical outcomes, and that on whether better measurement reduces morbidity there are currently no studies with which to answer the question142. Separately, one popular science book cited in the specification's grounding section carries unresolved published factual criticism; the specification already labels it a popular science reference and not evidentiary, which is the correct call, but removing it from a scientific grounding section entirely is the stronger position140.

Merece registro una cautela más en lugar de ocultarla. La especificación cita dos artículos de fenotipado digital como base de la captación pasiva. Ambos son reales y están correctamente atribuidos, pero ambos son piezas de opinión, un artículo de perspectiva y un punto de vista de revista, sin métodos ni resultados. Definen el campo; no lo evidencian, y citarlos como base exagera aquello de lo que un editorial puede ser base. Útilmente para este documento, uno de esos autores escribe él mismo que no está claro si las mediciones con teléfono resultarán mejores para predecir desenlaces clínicos, y que sobre si una mejor medición reduce la morbilidad no hay actualmente estudios con los que responder142. Por separado, un libro de divulgación citado en la sección de fundamentación de la especificación arrastra críticas fácticas publicadas y no resueltas; la especificación ya lo etiqueta como referencia divulgativa y no probatoria, lo que es la decisión correcta, pero eliminarlo por completo de una sección de fundamentación científica es la posición más sólida140.

14.4 Priority order

14.4 Orden de prioridad

Must fix before any investor facing publication: the non existent 1977 citation, the wrong first author on the facial study, the wrong sleep paper for the predictive claim, the facial action coding overreach with the 2019 critique added, and the placeholder that is not a citation. Must fix before any App Store submission: the privacy manifest, and the public privacy health logging. Should fix for safety: confirm the never in or near water warning on both hyperventilatory techniques. Should fix for accuracy of the record: re baseline the test count, re source the eight techniques resting on one review, soften the physiological sigh summary, review the two evidence labels, re label the duration bands, add the one line uniqueness assertion, and update the readme and implementation plan. Should fix for engineering safety: an iOS test target, a direct test for the erase path, and continuous integration.

Corrección obligatoria antes de cualquier publicación dirigida a inversores: la cita inexistente de 1977, el primer autor equivocado del estudio facial, el artículo de sueño equivocado para la afirmación predictiva, el exceso de alcance del manual de codificación facial con la crítica de 2019 añadida, y el marcador de posición que no es una cita. Corrección obligatoria antes de cualquier presentación a la App Store: el manifiesto de privacidad y el registro de salud con privacidad pública. Corrección recomendada por seguridad: confirmar la advertencia de nunca dentro ni cerca del agua en ambas técnicas hiperventilatorias. Corrección recomendada por exactitud del registro: reajustar el recuento de pruebas, reasignar fuentes a las ocho técnicas que dependen de una sola revisión, suavizar el resumen del suspiro fisiológico, revisar las dos etiquetas de evidencia, reetiquetar las bandas de duración, añadir la aserción de unicidad de una línea y actualizar el léame y el plan de implementación. Corrección recomendada por seguridad de ingeniería: un target de pruebas de iOS, una prueba directa de la ruta de borrado e integración continua.

15. References

15. Referencias

One hundred and forty two references, every one carrying a verification marker and a statement of what it does not support. Verification means a person or agent retrieved the actual record, from a bibliographic index, a publisher page or the primary regulatory document, and confirmed authors, title, year, venue and identifier. Where an identifier could not be confirmed the entry says so rather than inventing one. Nothing here was cited from memory. The second half of each entry matters as much as the first: a citation that is real but load bearing beyond its evidence is as dangerous as a fake one.

Ciento cuarenta y dos referencias, cada una con un marcador de verificación y una declaración de lo que no sostiene. Verificar significa que una persona o agente recuperó el registro real, de un índice bibliográfico, una página de editorial o el documento regulatorio primario, y confirmó autores, título, año, revista e identificador. Cuando un identificador no pudo confirmarse, la entrada lo dice en lugar de inventarlo. Aquí nada se citó de memoria. La segunda mitad de cada entrada importa tanto como la primera: una cita real pero que soporta más peso del que su evidencia permite es tan peligrosa como una falsa.

Verification tally for the complete reference list.Recuento de verificación de la lista completa de referencias.
StatusEstado MeaningSignificado CountRecuento
VERIFIEDVERIFICADArecord retrieved; authors, title, year and venue confirmedregistro recuperado; autores, título, año y revista confirmados138
PARTIALLY VERIFIEDPARCIALMENTE VERIFICADAbibliography confirmed, full text or a specific element unobtainable: entries 13, 16, 17 and 94bibliografía confirmada, texto completo o un elemento concreto inaccesible: entradas 13, 16, 17 y 944
UNVERIFIED and cited as supportNO VERIFICADA y citada como respaldononeninguna0
TotalTotalcomplete list belowlista completa a continuación142

Five entries carry an explicit note that a digital identifier could not be confirmed, rather than a fabricated one. Bibliographic details are given once and are language neutral; the note on what each reference does not support is given in both languages.

Cinco entradas llevan una nota explícita de que no pudo confirmarse un identificador digital, en lugar de uno inventado. Los datos bibliográficos se dan una vez y son neutros en cuanto al idioma; la nota sobre lo que cada referencia no sostiene se da en ambos idiomas.

  1. Russell, J. A. (1980). "A circumplex model of affect." Journal of Personality and Social Psychology, 39(6), 1161-1178. DOI 10.1037/h0077714. VERIFIED. Does not support dominance. The paper is explicitly two factor, so citing it for a three axis space is a misattribution.No sostiene la dominancia. El artículo es explícitamente de dos factores, así que citarlo para un espacio de tres ejes es una atribución errónea.
  2. Russell, J. A., and Mehrabian, A. (1977). "Evidence for a three-factor theory of emotions." Journal of Research in Personality, 11(3), 273-294. DOI 10.1016/0092-6566(77)90037-X. VERIFIED against the author's own publication list. Does not support any claim that dominance is recoverable from peripheral physiology. It is a self report instrument paper.No sostiene ninguna afirmación de que la dominancia sea recuperable desde la fisiología periférica. Es un artículo de instrumento de autorreporte.
  3. Mehrabian, A., and Russell, J. A. (1974). An Approach to Environmental Psychology. Cambridge, MA: MIT Press. ISBN 9780262130905. VERIFIED. Does not support physiological measurement of any affect axis.No sostiene la medición fisiológica de ningún eje afectivo.
  4. Ekman, P., and Friesen, W. V. (1978). Facial Action Coding System. Palo Alto, CA: Consulting Psychologists Press. ISBN 9993626619. Digital identifier unverified: a proprietary manual that was never assigned one. VERIFIED. Does not support any emotion inference whatsoever. It makes no claim that an action unit configuration means an emotion.No sostiene ninguna inferencia emocional. No afirma que una configuración de unidades de acción signifique una emoción.
  5. Ekman, P. (1992). "An argument for basic emotions." Cognition and Emotion, 6(3-4), 169-200. DOI 10.1080/02699939208411068. VERIFIED. Does not support automated detection accuracy, and the theoretical claim is heavily contested.No sostiene la exactitud de la detección automatizada, y la afirmación teórica está muy disputada.
  6. Barrett, L. F., Adolphs, R., Marsella, S., Martinez, A. M., and Pollak, S. D. (2019). "Emotional Expressions Reconsidered: Challenges to Inferring Emotion From Human Facial Movements." Psychological Science in the Public Interest, 20(1), 1-68. DOI 10.1177/1529100619832930. VERIFIED, full text read. Does not support a claim that faces carry zero emotion information, since it explicitly concedes above chance reliability, and it says nothing about wearable inference.No sostiene que los rostros no lleven información emocional alguna, ya que concede explícitamente fiabilidad por encima del azar, y no dice nada sobre la inferencia con dispositivos vestibles.
  7. Durán, J. I., and Fernández-Dols, J.-M. (2021). "Do emotions result in their predicted facial expressions? A meta-analysis." Emotion, 21(7), 1550-1569. DOI 10.1037/emo0001015. VERIFIED. Does not support a settled verdict: there is a published rebuttal, so cite it as strong but contested.No sostiene un veredicto cerrado: existe una réplica publicada, así que cítese como sólida pero disputada.
  8. Schmidt, P., Reiss, A., Duerichen, R., Marberger, C., and Van Laerhoven, K. (2018). "Introducing WESAD, a Multimodal Dataset for Wearable Stress and Affect Detection." ICMI 2018, 400-408. DOI 10.1145/3242969.3242985. VERIFIED, full text read and tables transcribed. Does not support any in the wild claim or continuous affect regression. Labels are categorical conditions, not continuous targets, the sample is 15 subjects with lab induced affect, and the authors flag a speaking versus non speaking confound.No sostiene ninguna afirmación en entorno real ni regresión afectiva continua. Las etiquetas son condiciones categóricas y no objetivos continuos, la muestra son 15 sujetos con afecto inducido en laboratorio, y los autores señalan un confusor de hablar frente a no hablar.
  9. Abd-alrazaq, A., and colleagues (2024). "The Performance of Wearable AI in Detecting Stress Among Students: Systematic Review and Meta-Analysis." Journal of Medical Internet Research, 26, e52622. DOI 10.2196/52622. VERIFIED. Does not support generalisation beyond students, nor extrapolation from binary stress to mood. The wide confidence interval is itself the finding.No sostiene la generalización más allá de estudiantes, ni la extrapolación del estrés binario al estado de ánimo. El amplio intervalo de confianza es en sí el hallazgo.
  10. Vos, G., Trinh, K., Sarnyai, Z., and Rahimi Azghadi, M. (2023). "Generalizable machine learning for stress monitoring from wearable devices: a systematic literature review." International Journal of Medical Informatics, 173, 105026. DOI 10.1016/j.ijmedinf.2023.105026. VERIFIED. Does not support a specific study count, since sources disagree; no count should be quoted.No sostiene un recuento concreto de estudios, ya que las fuentes discrepan; no debe citarse ningún recuento.
  11. Shaffer, F., and Ginsberg, J. P. (2017). "An Overview of Heart Rate Variability Metrics and Norms." Frontiers in Public Health, 5, article 258. DOI 10.3389/fpubh.2017.00258. VERIFIED, full text read. Does not support individual level diagnosis, nor applying 24 hour strata to short wrist readings. The paper is explicit that values from different epoch lengths are not interchangeable.No sostiene el diagnóstico individual ni aplicar los estratos de 24 horas a lecturas cortas de muñeca. El artículo es explícito en que los valores de distintas longitudes de época no son intercambiables.
  12. Laborde, S., Mosley, E., and Thayer, J. F. (2017). "Heart Rate Variability and Cardiac Vagal Tone in Psychophysiological Research." Frontiers in Psychology, 8, article 213. DOI 10.3389/fpsyg.2017.00213. VERIFIED. Does not support variability as a mood or emotion readout. Its entire purpose is to warn that uncontrolled confounds invalidate interpretation.No sostiene la VFC como lectura de ánimo o emoción. Su propósito entero es advertir que los confusores no controlados invalidan la interpretación.
  13. Task Force of the European Society of Cardiology and the North American Society of Pacing and Electrophysiology (1996). "Heart rate variability: standards of measurement, physiological interpretation, and clinical use." Circulation, 93(5), 1043-1065, and European Heart Journal, 17(3), 354-381. PARTIALLY VERIFIED: both identifiers and both journal records confirmed, full text unobtainable behind access controls. Should be cited only for the existence of the standard. Do not quote it verbatim; attribute the interpretive claims to entry 11, which was read in full.Debe citarse solo por la existencia del estándar. No citarla literalmente; atribuir las afirmaciones interpretativas a la entrada 11, que sí se leyó completa.
  14. Nunan, D., Sandercock, G. R. H., and Brodie, D. A. (2010). "A Quantitative Systematic Review of Normal Values for Short-Term Heart Rate Variability in Healthy Adults." Pacing and Clinical Electrophysiology, 33(11), 1407-1417. DOI 10.1111/j.1540-8159.2010.02841.x. VERIFIED. Does not support any usable normative cutoff: the point is that the range is far too wide for one.No sostiene ningún punto de corte normativo utilizable: lo que muestra es que el rango es demasiado amplio para tenerlo.
  15. Quintana, D. S., and Heathers, J. A. J. (2014). "Considerations in the assessment of heart rate variability in biobehavioral research." Frontiers in Psychology, 5, article 805. DOI 10.3389/fpsyg.2014.00805. VERIFIED. Does not support between group normative comparison, nor treating confound control as optional in consumer settings.No sostiene la comparación normativa entre grupos, ni tratar el control de confusores como opcional en contextos de consumo.
  16. Thayer, J. F., and Lane, R. D. (2000). "A model of neurovisceral integration in emotion regulation and dysregulation." Journal of Affective Disorders, 61(3), 201-216. DOI 10.1016/S0165-0327(00)00338-4. PARTIALLY VERIFIED: metadata confirmed, full text paywalled. Does not support momentary inference of a specific emotion from a single reading, and must not be quoted verbatim.No sostiene la inferencia momentánea de una emoción concreta desde una sola lectura, y no debe citarse literalmente.
  17. Thayer, J. F., and Lane, R. D. (2009). "Claude Bernard and the heart-brain connection." Neuroscience and Biobehavioral Reviews, 33(2), 81-88. DOI 10.1016/j.neubiorev.2008.08.004. PARTIALLY VERIFIED: metadata confirmed, full text paywalled. A theoretical review of regulatory capacity, not a measurement validation of affect. Do not quote verbatim.Una revisión teórica de la capacidad reguladora, no una validación de medición del afecto. No citar literalmente.
  18. Kim, H.-G., Cheon, E.-J., Bai, D.-S., Lee, Y. H., and Koo, B.-H. (2018). "Stress and Heart Rate Variability: A Meta-Analysis and Review of the Literature." Psychiatry Investigation, 15(3), 235-245. DOI 10.30773/pi.2017.08.17. VERIFIED. Does not support individual level stress detection or any effect magnitude: despite its title the paper reports no standardised pooled effect sizes.No sostiene la detección individual del estrés ni ninguna magnitud de efecto: pese a su título el artículo no reporta tamaños de efecto agrupados estandarizados.
  19. Bonneval, L., Wing, D., Sharp, S., Tristao Parra, M., Moran, R., LaCroix, A., and Godino, J. (2025). "Validity of Heart Rate Variability Measured with Apple Watch Series 6 Compared to Laboratory Measures." Sensors, 25(8), 2380. DOI 10.3390/s25082380. VERIFIED. Does not support any claim of validated variability accuracy on Apple Watch; the study notes the device does not expose the data needed to assess high frequency band power.No sostiene ninguna afirmación de exactitud validada de la VFC en el Apple Watch; el estudio señala que el dispositivo no expone los datos necesarios para evaluar la potencia de la banda de alta frecuencia.
  20. Schuurmans, A. A. T., and colleagues (2020). "Validity of the Empatica E4 Wristband to Measure Heart Rate Variability Parameters." Journal of Medical Systems, 44(11), 190. DOI 10.1007/s10916-020-01648-w. VERIFIED. Does not support absolute quantification of the vagal index, nor any use during movement: roughly forty milliseconds of disagreement remain even under ideal static conditions.No sostiene la cuantificación absoluta del índice vagal, ni ningún uso durante el movimiento: quedan unos cuarenta milisegundos de discrepancia incluso en condiciones estáticas ideales.
  21. Coste, A., Millour, G., Hausswirth, C., and colleagues (2025). "A Comparative Study Between ECG and PPG-Based Heart Rate Sensors for Heart Rate Variability Measurements." Sensors, 25(18), 5745. DOI 10.3390/s25185745. VERIFIED. Does not support generalisation to consumer wrist watches: it used a chest strap and a research grade optical arm sensor, so it is a best case bound.No sostiene la generalización a relojes de consumo: usó una banda de pecho y un sensor óptico de brazo de grado investigación, así que es una cota de mejor caso.
  22. Georgiou, K., and colleagues (2018). "Can Wearable Devices Accurately Measure Heart Rate Variability? A Systematic Review." Folia Medica, 60(1), 7-20. DOI 10.2478/folmed-2018-0012. VERIFIED. Does not support quantified optical error figures: only two of the eighteen reviewed studies were optical and no pooled bias is reported. Use it for the evidence gap, not for numbers.No sostiene cifras cuantificadas de error óptico: solo dos de los dieciocho estudios revisados eran ópticos y no se reporta sesgo agrupado. Úsese para el hueco de evidencia, no para números.
  23. Falter, M., Budts, W., Goetschalckx, K., Cornelissen, V., and Buys, R. (2019). "Accuracy of Apple Watch Measurements for Heart Rate and Energy Expenditure in Patients With Cardiovascular Disease." JMIR mHealth and uHealth, 7(3), e11889. DOI 10.2196/11889. VERIFIED. Does not support variability at all: this study measured heart rate only, its resting error exceeded the conventional validity threshold, and energy expenditure was far worse, which is a caution against assuming derived metrics inherit sensor accuracy.No sostiene nada sobre variabilidad: este estudio midió solo la frecuencia cardíaca, su error en reposo superó el umbral convencional de validez y el gasto energético fue mucho peor, lo que advierte contra suponer que las métricas derivadas heredan la exactitud del sensor.
  24. Munoz, M. L., and colleagues (2015). "Validity of (Ultra-)Short Recordings for Heart Rate Variability Measurements." PLOS ONE, 10(9), e0138921. DOI 10.1371/journal.pone.0138921. VERIFIED. Does not support optical or wearable use: this was clean electrocardiography. Note also that the correlations are across people and look good even when absolute values are biased; the effect size column is the honest one.No sostiene el uso óptico ni con dispositivos vestibles: fue electrocardiografía limpia. Obsérvese además que las correlaciones son entre personas y lucen bien aunque los valores absolutos estén sesgados; la columna de tamaño de efecto es la honesta.
  25. Pecchia, L., Castaldo, R., Montesinos, L., and Melillo, P. (2018). "Are ultra-short heart rate variability features good surrogates of short-term ones?" Healthcare Technology Letters, 5(3), 94-100. DOI 10.1049/htl.2017.0090. VERIFIED. Does not support a definitive minimum duration for the standard deviation measure: the review establishes none, so do not cite it for a specific cutoff.No sostiene una duración mínima definitiva para la medida de desviación estándar: la revisión no establece ninguna, así que no debe citarse para un corte concreto.
  26. Dial, M. B., Hollander, M. E., Vatne, E. A., and colleagues (2025). "Validation of nocturnal resting heart rate and heart rate variability in consumer wearables." Physiological Reports, 13(16), e70527. DOI 10.14814/phy2.70527. VERIFIED. Does not support waking or daytime spot check accuracy, and Apple Watch was not among the five devices tested.No sostiene la exactitud en vigilia ni en comprobaciones puntuales diurnas, y el Apple Watch no estuvo entre los cinco dispositivos probados.
  27. Zaccaro, A., and colleagues (2018). "How Breath-Control Can Change Your Life: A Systematic Review on Psycho-Physiological Correlates of Slow Breathing." Frontiers in Human Neuroscience, 12, 353. DOI 10.3389/fnhum.2018.00353. VERIFIED. Does not support any effect size or causal claim: it covers fifteen studies and is explicitly not a meta analysis, with the authors stating that heterogeneity prevented pooling. It cannot carry per technique claims, least of all for hyperventilatory practices.No sostiene ningún tamaño de efecto ni afirmación causal: cubre quince estudios y explícitamente no es un metaanálisis, y los autores afirman que la heterogeneidad impidió agregar. No puede sostener afirmaciones por técnica, y menos aún para prácticas hiperventilatorias.
  28. Lehrer, P. M., and Gevirtz, R. (2014). "Heart rate variability biofeedback: how and why does it work?" Frontiers in Psychology, 5, 756. DOI 10.3389/fpsyg.2014.00756. VERIFIED. Does not support efficacy: it is a mechanism review with no sample and no outcomes.No sostiene la eficacia: es una revisión de mecanismo sin muestra y sin desenlaces.
  29. Lehrer, P. M., Vaschillo, E., and Vaschillo, B. (2000). "Resonant frequency biofeedback training to increase cardiac variability: rationale and manual for training." Applied Psychophysiology and Biofeedback, 25(3), 177-191. DOI 10.1023/a:1009554825745. VERIFIED. Does not support outcomes: rationale and manual only, with no trial data.No sostiene desenlaces: solo justificación y manual, sin datos de ensayo.
  30. Vaschillo, E. G., Vaschillo, B., and Lehrer, P. M. (2006). "Characteristics of resonance in heart rate variability stimulated by biofeedback." Applied Psychophysiology and Biofeedback, 31(2), 129-142. DOI 10.1007/s10484-006-9009-3. VERIFIED. Does not support mood or anxiety claims: it is purely cardiovascular physiology with no psychological outcome. It is however the citation that justifies the app's honest framing of the resonance technique, since the app uses a population midpoint because it cannot measure an individual's resonance.No sostiene afirmaciones de ánimo ni ansiedad: es fisiología cardiovascular pura sin desenlace psicológico. Es sin embargo la cita que justifica el encuadre honesto de la técnica de resonancia en la app, ya que esta usa un punto medio poblacional porque no puede medir la resonancia individual.
  31. Sevoz-Couche, C., and Laborde, S. (2022). "Heart rate variability and slow-paced breathing: when coherence meets resonance." Neuroscience and Biobehavioral Reviews, 135, 104576. DOI 10.1016/j.neubiorev.2022.104576. VERIFIED. Does not support efficacy: a narrative review with no sample.No sostiene la eficacia: revisión narrativa sin muestra.
  32. Steffen, P. R., Austin, T., DeBarros, A., and Brown, T. (2017). "The Impact of Resonance Frequency Breathing on Measures of Heart Rate Variability, Blood Pressure, and Mood." Frontiers in Public Health, 5, 222. DOI 10.3389/fpubh.2017.00222. VERIFIED. Does not support durable or clinical mood benefit: a single fifteen minute session in healthy young adults, unblinded, with a positive affect measure only and no anxiety instrument.No sostiene un beneficio de ánimo duradero ni clínico: una única sesión de quince minutos en adultos jóvenes sanos, sin ciego, con solo una medida de afecto positivo y sin instrumento de ansiedad.
  33. Laborde, S., and colleagues (2022). "Effects of voluntary slow breathing on heart rate and heart rate variability: a systematic review and meta-analysis." Neuroscience and Biobehavioral Reviews, 138, 104711. DOI 10.1016/j.neubiorev.2022.104711. VERIFIED as to metadata and the 223 included studies; pooled effect sizes could not be verified. Does not support mood or anxiety claims, since it measures variability only. Effect sizes circulating in secondary sources are not confirmed and must not be printed.No sostiene afirmaciones de ánimo ni ansiedad, ya que mide solo variabilidad. Los tamaños de efecto que circulan en fuentes secundarias no están confirmados y no deben imprimirse.
  34. Shao, R., Man, I. S. C., and Lee, T. M. C. (2024). "The Effect of Slow-Paced Breathing on Cardiovascular and Emotion Functions: A Meta-Analysis and Systematic Review." Mindfulness. DOI 10.1007/s12671-023-02294-2. VERIFIED. Does not support the emotional claim: negative emotion and perceived stress reach a standardised mean difference of minus 0.51 with a confidence interval from minus 1.06 to plus 0.03, which crosses zero and is therefore not significant. This is the single most important honesty citation for the claim that slow breathing calms you.No sostiene la afirmación emocional: la emoción negativa y el estrés percibido alcanzan una diferencia media estandarizada de menos 0,51 con intervalo de confianza de menos 1,06 a más 0,03, que cruza el cero y por tanto no es significativa. Es la cita de honestidad más importante para la afirmación de que la respiración lenta calma.
  35. You, M., Laborde, S., Ackermann, S., Borges, U., Dosseville, F., and Mosley, E. (2024). "Influence of Respiratory Frequency of Slow-Paced Breathing on Vagally-Mediated Heart Rate Variability." Applied Psychophysiology and Biofeedback, 49(1), 133-143. DOI 10.1007/s10484-023-09605-2. VERIFIED. Does not support mood or anxiety, which were not measured, and the sample is athletes. It does justify the app shipping both a six and a five and a half breath per minute mode, since all rates from five to seven raised vagal activity.No sostiene ánimo ni ansiedad, que no se midieron, y la muestra son atletas. Sí justifica que la app envíe modos de seis y de cinco y media respiraciones por minuto, ya que todas las tasas de cinco a siete elevaron la actividad vagal.
  36. Fincham, G. W., Strauss, C., Montero-Marin, J., and Cavanagh, K. (2023). "Effect of breathwork on stress and mental health: a meta-analysis of randomised-controlled trials." Scientific Reports, 13, 432. DOI 10.1038/s41598-022-27247-y. VERIFIED. Does not support any specific technique, since it pools heterogeneous breathwork. The authors caution that most studies were at moderate risk of bias and urge avoiding a miscalibration between hype and evidence, and the first author declares training as a breath teacher.No sostiene ninguna técnica concreta, ya que agrupa trabajo respiratorio heterogéneo. Los autores advierten que la mayoría de estudios tenían riesgo moderado de sesgo e instan a evitar una descalibración entre expectación y evidencia, y el primer autor declara formación como instructor de respiración.
  37. Fincham, G. W., Strauss, C., and Cavanagh, K. (2023). "Effect of coherent breathing on mental health and wellbeing: a randomised placebo-controlled trial." Scientific Reports, 13, 22141. DOI 10.1038/s41598-023-49279-8. VERIFIED. The most important negative result in this list. With 400 participants and an attention matched active placebo, both arms improved but there was no group by time interaction on stress and no group effect on anxiety, depression or wellbeing. It does not support any claim of cadence specific efficacy.El resultado negativo más importante de esta lista. Con 400 participantes y un placebo activo equiparado en atención, ambos brazos mejoraron pero no hubo interacción de grupo por tiempo en el estrés ni efecto de grupo en ansiedad, depresión o bienestar. No sostiene ninguna afirmación de eficacia específica de la cadencia.
  38. Van Diest, I., and colleagues (2014). "Inhalation/Exhalation ratio modulates the effect of slow breathing on heart rate variability and relaxation." Applied Psychophysiology and Biofeedback, 39(3-4), 171-180. DOI 10.1007/s10484-014-9253-x. VERIFIED. Does not support clinical claims: a single session with state ratings and no anxiety instrument, and the variability effect was an interaction rather than a main effect.No sostiene afirmaciones clínicas: una sola sesión con valoraciones de estado y sin instrumento de ansiedad, y el efecto sobre la VFC fue una interacción y no un efecto principal.
  39. Meehan, Z. M., and Shaffer, F. (2024). "Do Longer Exhalations Increase HRV During Slow-Paced Breathing?" Applied Psychophysiology and Biofeedback, 49(3), 407-417. DOI 10.1007/s10484-024-09637-2. VERIFIED. A negative result, cited for honesty: the inhale to exhale ratio did not affect variability in either of two studies once participants were already at resonance. Small samples and no mood outcome.Un resultado negativo, citado por honestidad: la razón de inhalación a exhalación no afectó la VFC en ninguno de los dos estudios una vez los participantes ya estaban en resonancia. Muestras pequeñas y sin desenlace de ánimo.
  40. Bae, D., Matthews, J. J. L., Chen, J. J., and Mah, L. (2021). "Increased exhalation to inhalation ratio during breathing enhances high-frequency heart rate variability in healthy adults." Psychophysiology, 58(11), e13905. DOI 10.1111/psyp.13905. VERIFIED. Does not support mood claims: no mood was measured.No sostiene afirmaciones de ánimo: no se midió el ánimo.
  41. Strauss-Blasche, G., and colleagues (2000). "Relative timing of inspiration and expiration affects respiratory sinus arrhythmia." Clinical and Experimental Pharmacology and Physiology, 27(8), 601-606. DOI 10.1046/j.1440-1681.2000.03306.x. VERIFIED. Does not support any psychological outcome, and the sample is twelve.No sostiene ningún desenlace psicológico, y la muestra es de doce.
  42. Laborde, S., and colleagues (2021). "Slow-Paced Breathing: Influence of Inhalation/Exhalation Ratio and of Respiratory Pauses on Cardiac Vagal Activity." Sustainability, 13(14), 7775. DOI 10.3390/su13147775. VERIFIED via an indexing service, since the publisher blocked retrieval. Physiology only, in an athlete sample; it supports no psychological claim.Solo fisiología, en una muestra de atletas; no sostiene ninguna afirmación psicológica.
  43. Balban, M. Y., and colleagues, including Huberman, A. D. (2023). "Brief structured respiration practices enhance mood and reduce physiological arousal." Cell Reports Medicine, 4(1), 100895. DOI 10.1016/j.xcrm.2022.100895. VERIFIED. Does not support box breathing superiority or any ranking between breathwork arms: box breathing improved within group but was not significantly superior to the meditation control, and no significant differences were detected between the three breathwork arms, which the authors say were too small to power those comparisons.No sostiene la superioridad de la respiración en caja ni ninguna clasificación entre ramas de respiración: la respiración en caja mejoró dentro del grupo pero no fue significativamente superior al control de meditación, y no se detectaron diferencias significativas entre las tres ramas, que según los autores eran demasiado pequeñas para dar potencia a esas comparaciones.
  44. Li, P., and colleagues, including Feldman, J. L. (2016). "The peptidergic control circuit for sighing." Nature, 530, 293-297. DOI 10.1038/nature16964. VERIFIED. Does not support any human or behavioural claim: it is a rodent study with no mood outcome. Use only as mechanism.No sostiene ninguna afirmación humana ni conductual: es un estudio en roedores sin desenlace de ánimo. Úsese solo como mecanismo.
  45. Ma, X., and colleagues (2017). "The Effect of Diaphragmatic Breathing on Attention, Negative Affect and Stress in Healthy Adults." Frontiers in Psychology, 8, 874. DOI 10.3389/fpsyg.2017.00874. VERIFIED. Does not support acute single session use, clinical anxiety, or effects independent of expectancy. Critically, it is not a true randomised trial: allocation was by alternating registration order with gender balancing, and the control was a passive no treatment group.No sostiene el uso agudo en una sola sesión, la ansiedad clínica ni efectos independientes de la expectativa. Críticamente, no es un verdadero ensayo aleatorizado: la asignación fue por orden alterno de registro con equilibrio de sexo, y el control fue un grupo pasivo sin tratamiento.
  46. Marchant, J., Khazan, I., Cressman, M., and Steffen, P. (2025). "Comparing the Effects of Square, 4-7-8, and 6 Breaths-per-Minute Breathing Conditions on Heart Rate Variability, Carbon Dioxide Levels, and Mood." Applied Psychophysiology and Biofeedback, 50(2), 261-276. DOI 10.1007/s10484-025-09688-z. VERIFIED. A direct negative result for two shipped techniques: six breaths per minute raised variability more than either square or the four seven eight pattern, and none of the conditions produced meaningful changes in blood pressure or mood.Un resultado negativo directo para dos técnicas publicadas: seis respiraciones por minuto elevaron la VFC más que la respiración cuadrada o el patrón cuatro siete ocho, y ninguna de las condiciones produjo cambios relevantes en presión arterial ni en ánimo.
  47. Röttger, S., Theobald, D. A., Abendroth, J., and Jacobsen, T. (2021). "The Effectiveness of Combat Tactical Breathing as Compared with Prolonged Exhalation." Applied Psychophysiology and Biofeedback, 46(1), 19-28. DOI 10.1007/s10484-020-09485-w. VERIFIED. Does not support subjective benefit: there were no significant differences between breathing techniques on the subjective level, and prolonged exhalation produced better task performance. The sample was thirty healthy adults, not police officers.No sostiene el beneficio subjetivo: no hubo diferencias significativas entre técnicas en el plano subjetivo, y la exhalación prolongada dio mejor rendimiento en la tarea. La muestra fueron treinta adultos sanos, no agentes de policía.
  48. McAllister, M. J., Martaindale, M. H., Sutton, N., and Andersen, J. P. (2026). "Box breathing and prolonged exhalation reduces markers of physiological stress reactivity in response to a virtual social stress test." Comprehensive Psychoneuroendocrinology, 27, 100360. DOI 10.1016/j.cpnec.2026.100360. VERIFIED. Does not support cortisol or cognitive performance effects, both of which were null, and it is an acute laboratory setting with twenty two participants per arm.No sostiene efectos sobre el cortisol ni sobre el rendimiento cognitivo, ambos nulos, y es un entorno agudo de laboratorio con veintidós participantes por rama.
  49. Kurt Aktaş, G., and Eskici İlgin, V. (2023). "The Effect of Deep Breathing Exercise and 4-7-8 Breathing Techniques Applied to Patients After Bariatric Surgery on Anxiety and Quality of Life." Obesity Surgery, 33(3), 920-929. DOI 10.1007/s11695-022-06405-1. VERIFIED. Does not support generalisation: surgical inpatients, unblinded, with no sham and a short follow up.No sostiene la generalización: pacientes quirúrgicos hospitalizados, sin ciego, sin simulación y con seguimiento corto.
  50. Vierra, J., Boonla, O., and Prasertsri, P. (2022). "Effects of sleep deprivation and 4-7-8 breathing control on heart rate variability, blood pressure, blood glucose, and endothelial function in healthy young adults." Physiological Reports, 10(13), e15389. DOI 10.14814/phy2.15389. VERIFIED. Does not support vagal enhancement or mood: it was not randomised, had no non breathing control, several variability measures actually decreased, and no mood outcome was collected.No sostiene la mejora vagal ni el ánimo: no fue aleatorizado, no tuvo control sin respiración, varias medidas de variabilidad de hecho disminuyeron y no se recogió desenlace de ánimo.
  51. Holland, A. E., Hill, C. J., Jones, A. Y., and McDonald, C. F. (2012). "Breathing exercises for chronic obstructive pulmonary disease." Cochrane Database of Systematic Reviews, 2012(10), CD008250. DOI 10.1002/14651858.CD008250.pub2. VERIFIED. Does not support mood, which was not an outcome, nor routine clinical use: effects on breathlessness and quality of life were inconsistent and the walking distance gain came from a single sixty participant trial.No sostiene el ánimo, que no fue un desenlace, ni el uso clínico rutinario: los efectos sobre la disnea y la calidad de vida fueron dispares y la ganancia de distancia de marcha provino de un único ensayo de sesenta participantes.
  52. Mayer, A. F., Karloh, M., Dos Santos, K., de Araujo, C. L. P., and Gulart, A. A. (2018). "Effects of acute use of pursed-lips breathing during exercise in patients with chronic obstructive pulmonary disease: a systematic review and meta-analysis." Physiotherapy, 104(1), 9-17. DOI 10.1016/j.physio.2017.08.007. VERIFIED. Does not support functional capacity, where no significant walking distance difference was found, nor mood, which was not an outcome.No sostiene la capacidad funcional, donde no se halló diferencia significativa en distancia de marcha, ni el ánimo, que no fue un desenlace.
  53. Kuppusamy, M., Kamaldeen, D., Pitani, R., Amaldas, J., and Shanmugam, P. (2017). "Effects of Bhramari Pranayama on health: a systematic review." Journal of Traditional and Complementary Medicine, 8(1), 11-16. DOI 10.1016/j.jtcme.2017.02.003. VERIFIED. The key honesty citation for the humming technique: the authors state that methodological quality of the six included studies was very low and that none of them were randomised trials.La cita clave de honestidad para la técnica de zumbido: los autores afirman que la calidad metodológica de los seis estudios incluidos era muy baja y que ninguno era un ensayo aleatorizado.
  54. Chetry, D., Chhetri, A., Rajak, D. K., Rathore, V., and Gupta, A. (2024). "Exploring the health benefits of bhramari pranayama: a comprehensive literature review." Indian Journal of Physiology and Pharmacology, 68(1), 71-85. DOI 10.25259/IJPP_325_2023. VERIFIED. Does not support strong inference: of the 46 studies only six were randomised, the authors performed no quality assessment, most had follow up of three months or less, and there is no standardised protocol.No sostiene una inferencia sólida: de los 46 estudios solo seis fueron aleatorizados, los autores no realizaron evaluación de calidad, la mayoría tuvo seguimiento de tres meses o menos y no hay protocolo estandarizado.
  55. Woo, M., and Kim, T. (2025). "Effects of slow-paced breathing and humming breathing on heart rate variability and affect: a pilot investigation." Physiology and Behavior, 299, 114972. DOI 10.1016/j.physbeh.2025.114972. VERIFIED. Negative for the specific value of humming: both conditions raised variability versus rest, but there was no significant difference between humming and ordinary slow paced breathing. Sixteen participants.Negativo para el valor específico del zumbido: ambas condiciones elevaron la VFC frente al reposo, pero no hubo diferencia significativa entre el zumbido y la respiración lenta ordinaria. Dieciséis participantes.
  56. Weitzberg, E., and Lundberg, J. O. N. (2002). "Humming greatly increases nasal nitric oxide." American Journal of Respiratory and Critical Care Medicine, 166(2), 144-145. DOI 10.1164/rccm.200202-138BC. VERIFIED. Does not support anything clinical: this study measured no mood, anxiety, stress, sleep or blood pressure outcome whatsoever, its framing is diagnostic rather than therapeutic, and the sample is ten. The inference that raising nitric oxide therefore calms you is unsupported and must not appear in product copy.No sostiene nada clínico: este estudio no midió ningún desenlace de ánimo, ansiedad, estrés, sueño ni presión arterial, su encuadre es diagnóstico y no terapéutico, y la muestra es de diez. La inferencia de que elevar el óxido nítrico calma no está sustentada y no debe aparecer en los textos del producto.
  57. Novaes, M. M., Palhano-Fontes, F., Onias, H., and colleagues (2020). "Effects of Yoga Respiratory Practice (Bhastrika pranayama) on Anxiety, Affect, and Brain Functional Connectivity and Activity: A Randomized Controlled Trial." Frontiers in Psychiatry, 11, 467. DOI 10.3389/fpsyt.2020.00467. VERIFIED. Does not support isolating the bellows breath: the protocol also included other practices, postures, locks and relaxation. The authors call it preliminary and exploratory, with no correction for multiple comparisons, uncontrolled home practice and healthy young adults only.No sostiene el aislamiento de la respiración de fuelle: el protocolo incluía además otras prácticas, posturas, llaves y relajación. Los autores lo llaman preliminar y exploratorio, sin corrección por comparaciones múltiples, con práctica domiciliaria no controlada y solo adultos jóvenes sanos.
  58. Pramanik, T., Sharma, H. O., Mishra, S., and colleagues (2009). "Immediate effect of slow pace bhastrika pranayama on blood pressure and heart rate." Journal of Alternative and Complementary Medicine, 15(3), 293-295. DOI 10.1089/acm.2008.0440. VERIFIED. Does not support the rapid form the app ships: this study used the slow paced variant at six breaths per minute, which is effectively resonance breathing rather than the classical rapid bellows breath.No sostiene la forma rápida que envía la app: este estudio usó la variante de ritmo lento a seis respiraciones por minuto, que es en la práctica respiración de resonancia y no la respiración de fuelle rápida clásica.
  59. Nivethitha, L., Mooventhan, A., Manjunath, N. K., Bathala, L., and Sharma, V. K. (2017). "Cerebrovascular hemodynamics during pranayama techniques." Journal of Neurosciences in Rural Practice, 8(1), 60-63. DOI 10.4103/0976-3147.193532. VERIFIED. This is the mechanistic basis for the app's precautionary contraindications on the bellows breath, since it documents a reduction in cerebral flow velocity consistent with vasoconstriction. It supports no efficacy claim, and no randomised trial with adverse event surveillance for that technique exists.Es la base mecanicista de las contraindicaciones cautelares de la app para la respiración de fuelle, ya que documenta una reducción de la velocidad de flujo cerebral compatible con vasoconstricción. No sostiene ninguna afirmación de eficacia, y no existe ningún ensayo aleatorizado con vigilancia de eventos adversos para esa técnica.
  60. Zelano, C., and colleagues (2016). "Nasal Respiration Entrains Human Limbic Oscillations and Modulates Cognitive Function." Journal of Neuroscience, 36(49), 12448-12467. DOI 10.1523/JNEUROSCI.2586-16.2016. VERIFIED. Does not support any calming claim: no mood or anxiety scale was administered, the sample is seven epilepsy patients with intracranial electrodes, and the cognitive measure is a perceptual speed effect. This paper is routinely over cited in wellness contexts and must not be used to justify nasal breathing calm claims.No sostiene ninguna afirmación de calma: no se administró ninguna escala de ánimo ni ansiedad, la muestra son siete pacientes con epilepsia y electrodos intracraneales, y la medida cognitiva es un efecto de velocidad perceptiva. Este artículo se sobrecita habitualmente en contextos de bienestar y no debe usarse para justificar afirmaciones de calma por respiración nasal.
  61. Watso, J. C., Cuba, J. N., Boutwell, S. L., and colleagues (2023). "Acute nasal breathing lowers diastolic blood pressure and increases parasympathetic contributions to heart rate variability in young adults." American Journal of Physiology, Regulatory, Integrative and Comparative Physiology, 325(6), R797-R808. DOI 10.1152/ajpregu.00148.2023. VERIFIED. Does not support effects during exercise, where none were found, nor mood, which was not measured. Twenty participants of mean age eighteen.No sostiene efectos durante el ejercicio, donde no se hallaron, ni sobre el ánimo, que no se midió. Veinte participantes de edad media dieciocho.
  62. Nam, T. G., Jeong, H., Kim, K. H., and Jang, I. (2024). "Effectiveness of Alternative Nostril Breathing on Blood Pressure: A Systematic Review and Meta-Analysis of Randomized Controlled Trials." Complementary Medicine Research, 31(5), 449-460. DOI 10.1159/000539707. VERIFIED. A context reference only: the app does not ship alternate nostril breathing. It supports blood pressure effects with very high heterogeneity, which the authors flag, and it supports nothing about mental health.Solo una referencia de contexto: la app no incluye la respiración alterna por fosas nasales. Sostiene efectos sobre la presión arterial con heterogeneidad muy alta, que los autores señalan, y no sostiene nada sobre salud mental.
  63. Maurer, B. T. (2024). "Starfish breathing." JAAPA, 37(12), 50. Digital identifier unverified. VERIFIED as existing. Supports nothing. It is a humanities column with no participants and no data. It is listed only so that the claim that no trial exists for the hand tracing technique is auditable.No sostiene nada. Es una columna de humanidades sin participantes y sin datos. Se lista solo para que la afirmación de que no existe ningún ensayo de la técnica de trazado de la mano sea auditable.
  64. Kox, M., van Eijk, L. T., Zwaag, J., and colleagues (2014). "Voluntary activation of the sympathetic nervous system and attenuation of the innate immune response in humans." PNAS, 111(20), 7379-7384. DOI 10.1073/pnas.1322174111. VERIFIED. Does not support mood or anxiety: no affective instrument was administered at all. It was randomised but not blinded and had no active or sham control, and it cannot separate breathing from meditation or cold exposure.No sostiene ánimo ni ansiedad: no se administró ningún instrumento afectivo. Fue aleatorizado pero sin ciego y sin control activo ni simulado, y no puede separar la respiración de la meditación o la exposición al frío.
  65. Fincham, G. W., Epel, E., Colasanti, A., Strauss, C., and Cavanagh, K. (2024). "Effects of brief remote high ventilation breathwork with retention on mental health and wellbeing: a randomised placebo-controlled trial." Scientific Reports, 14, 16893. DOI 10.1038/s41598-024-64254-7. VERIFIED. The single most useful citation for both efficacy honesty and safety on hyperventilatory practice. With 200 participants and a blinded design the primary result was null, with no advantage over an active control on stress or any secondary mental health outcome, and nine percent of the intervention group reported light headedness, dizziness, sleepiness and tetany. It is also the best peer reviewed source for the never near water instruction.La cita más útil a la vez para la honestidad sobre eficacia y para la seguridad de la práctica hiperventilatoria. Con 200 participantes y diseño ciego el resultado primario fue nulo, sin ventaja sobre un control activo en estrés ni en ningún desenlace secundario de salud mental, y el nueve por ciento del grupo de intervención reportó aturdimiento, mareo, somnolencia y tetania. Es además la mejor fuente revisada por pares para la instrucción de nunca cerca del agua.
  66. Blades, R., Mendes, W. B., Don, B. P., and colleagues (2024). "A randomized controlled clinical trial of a Wim Hof Method intervention in women with high depressive symptoms." Comprehensive Psychoneuroendocrinology, 20, 100272. DOI 10.1016/j.cpnec.2024.100272. VERIFIED. Null for superiority: against an active control of slow breathing plus warm showers, both groups improved equivalently and the gains were sustained at three months. Citing this as evidence that the method improves depression would misrepresent it.Nulo en superioridad: frente a un control activo de respiración lenta más duchas templadas, ambos grupos mejoraron por igual y las ganancias se mantuvieron a los tres meses. Citarlo como prueba de que el método mejora la depresión lo tergiversaría.
  67. Almahayni, O., and Hammond, L. (2024). "Does the Wim Hof Method have a beneficial impact on physiological and psychological outcomes in healthy and non-healthy participants? A systematic review." PLoS ONE, 19(3), e0286933. DOI 10.1371/journal.pone.0286933. VERIFIED. Does not support safety: the review contains no adverse event synthesis, so it must not be cited as evidence that the method is safe. The pooled sample size is unverified.No sostiene la seguridad: la revisión no contiene síntesis de eventos adversos, así que no debe citarse como prueba de que el método es seguro. El tamaño muestral agrupado no está verificado.
  68. Boyd, C., Levy, A., McProud, T., Huang, L., Raneses, E., and Olson, C. (2015). "Fatal and Nonfatal Drowning Outcomes Related to Dangerous Underwater Breath-Holding Behaviors, New York State, 1988-2011." MMWR, 64(19), 518-521. Digital identifier unverified: the publication of that era has none. VERIFIED. Does not support an incidence estimate: it is a case series with no denominator. It does establish the mechanism and the fact that all four fatalities had intentionally hyperventilated.No sostiene una estimación de incidencia: es una serie de casos sin denominador. Sí establece el mecanismo y el hecho de que las cuatro muertes habían hiperventilado intencionadamente.
  69. Craig, A. B. Jr. (1976). "Summary of 58 cases of loss of consciousness during underwater swimming and diving." Medicine and Science in Sports, 8(3), 171-175. DOI 10.1249/00005768-197600830-00007. VERIFIED. The strongest citation for the point that lifeguard supervision is not sufficient protection, since roughly eighty percent of the cases occurred in guarded pools. It supports no efficacy claim of any kind.La cita más sólida para el punto de que la vigilancia de socorrista no es protección suficiente, ya que alrededor del ochenta por ciento de los casos ocurrieron en piscinas vigiladas. No sostiene ninguna afirmación de eficacia.
  70. Bart, R. M., Murray, B. P., and Lau, H. "Shallow Water Blackout." StatPearls, updated 8 June 2026. Bookshelf identifier NBK554620. VERIFIED. Does not support a primary study evidence claim: it is a clinical reference chapter rather than original research. It is the clearest statement of the physiology, namely that pre dive hyperventilation suppresses the urge to breathe without safely compensating for oxygen deficiency.No sostiene una afirmación de evidencia de estudio primario: es un capítulo de referencia clínica y no investigación original. Es la exposición más clara de la fisiología, a saber, que la hiperventilación previa suprime el impulso de respirar sin compensar con seguridad el déficit de oxígeno.
  71. Kumar, K. R., and Ng, K. (2010). "Don't hold your breath: anoxic convulsions from coupled hyperventilation and underwater breath-holding." Medical Journal of Australia, 192(11), 663-664. DOI 10.5694/j.1326-5377.2010.tb03673.x. VERIFIED. Two case reports. It does not name any branded breathing method and supports no incidence estimate.Dos informes de caso. No nombra ningún método respiratorio de marca y no sostiene ninguna estimación de incidencia.
  72. Lippmann, J. M. (2025). "Snorkelling and Breath-Hold Diving Fatalities in Australia: A Review of 317 Deaths." International Journal of Environmental Research and Public Health, 22(1), 119. DOI 10.3390/ijerph22010119. VERIFIED. Supports the magnitude of the breath holding hazard, with up to eleven percent of deaths attributed to apnoeic hypoxia and eight of those occurring in swimming pools. It does not support any claim about a specific breathing programme.Sostiene la magnitud del peligro de la apnea, con hasta el once por ciento de las muertes atribuidas a hipoxia apneica y ocho de ellas en piscinas. No sostiene ninguna afirmación sobre un programa respiratorio concreto.
  73. Garcia-Argibay, M., Santed, M. A., and Reales, J. M. (2019). "Efficacy of binaural auditory beats in cognition, anxiety, and pain perception: a meta-analysis." Psychological Research, 83(2), 357-372. DOI 10.1007/s00426-018-1066-8. VERIFIED. Does not support any specific carrier frequency, any entrainment mechanism, or clinical treatment. It pools heterogeneous small laboratory studies and blinding adequacy and publication bias are not established.No sostiene ninguna frecuencia portadora concreta, ningún mecanismo de arrastre ni tratamiento clínico. Agrupa estudios de laboratorio pequeños y heterogéneos, y la adecuación del ciego y el sesgo de publicación no están establecidos.
  74. Ingendoh, R. M., Posny, E. S., and Heine, A. (2023). "Binaural beats to entrain the brain? A systematic review." PLOS ONE, 18(5), e0286023. DOI 10.1371/journal.pone.0286023. VERIFIED. The decisive citation on mechanism: of fourteen electroencephalography studies, five supported the entrainment hypothesis, eight contradicted it and one was mixed, and the authors state that the question cannot be settled at this point. It does not support the popular claim that beats tune brainwaves.La cita decisiva sobre el mecanismo: de catorce estudios electroencefalográficos, cinco apoyaron la hipótesis de arrastre, ocho la contradijeron y uno fue mixto, y los autores afirman que la cuestión no puede zanjarse por ahora. No sostiene la afirmación popular de que los batidos sintonizan las ondas cerebrales.
  75. López-Caballero, F., and Escera, C. (2017). "Binaural Beat: A Failure to Enhance EEG Power and Emotional Arousal." Frontiers in Human Neuroscience, 11, 557. DOI 10.3389/fnhum.2017.00557. VERIFIED. Direct negative evidence using an acoustic beat placebo: no significant changes were observed in any of the studied frequency bands, and no heart rate or skin conductance changes either.Evidencia negativa directa con un placebo de batido acústico: no se observaron cambios significativos en ninguna de las bandas de frecuencia estudiadas, ni cambios en frecuencia cardíaca o conductancia de la piel.
  76. Platt, J., and Hammond, L. (2024). "Is non-clinical, personal use of binaural beats audio an effective stress-management strategy? A systematic review of randomised control trials." Advances in Mental Health, 23(2), 258-286. DOI 10.1080/18387357.2024.2374759. VERIFIED. Of twelve randomised trials, eight reported at least one significant effect and four found no group effect. The authors state that the evidence is not strongly in favour of widespread recommendation, that little is known about adverse effects and that there is no clear optimal protocol.De doce ensayos aleatorizados, ocho reportaron al menos un efecto significativo y cuatro no hallaron efecto de grupo. Los autores afirman que la evidencia no favorece con fuerza una recomendación generalizada, que poco se sabe de los efectos adversos y que no hay un protocolo óptimo claro.
  77. Xiong, J., Jiang, X., Cai, B., Zhao, L., Zhang, Q., and Luo, J. (2025). "Binaural beats for perioperative anxiety and pain: a systematic review and meta-analysis." Complementary Therapies in Medicine, 95, 103299. DOI 10.1016/j.ctim.2025.103299. VERIFIED. Does not support uncritical acceptance: effect sizes of that magnitude in unblinded audio trials with self reported anxiety outcomes are very likely inflated by expectancy, and the authors note substantial heterogeneity.No sostiene una aceptación acrítica: tamaños de efecto de esa magnitud en ensayos de audio sin ciego con desenlaces de ansiedad autorreportados están muy probablemente inflados por la expectativa, y los autores señalan heterogeneidad sustancial.
  78. Juslin, P. N., and Västfjäll, D. (2008). "Emotional responses to music: the need to consider underlying mechanisms." Behavioral and Brain Sciences, 31(5), 559-575. DOI 10.1017/S0140525X08005293. VERIFIED. Does not support any frequency specific claim: it is a theoretical target article and not efficacy evidence. It is good grounding for why an ambient bed can shift mood.No sostiene ninguna afirmación específica de frecuencia: es un artículo teórico de discusión y no evidencia de eficacia. Sí fundamenta por qué una base ambiental puede mover el ánimo.
  79. de Witte, M., Spruit, A., van Hooren, S., Moonen, X., and Stams, G.-J. (2020). "Effects of music interventions on stress-related outcomes: a systematic review and two meta-analyses." Health Psychology Review, 14(2), 294-324. DOI 10.1080/17437199.2019.1627897. VERIFIED. Does not support frequency specific effects: these are generic music listening interventions across 104 randomised trials.No sostiene efectos específicos de frecuencia: son intervenciones genéricas de escucha musical en 104 ensayos aleatorizados.
  80. de Witte, M., da Silva Pinho, A., Stams, G.-J., Moonen, X., Bos, A. E. R., and van Hooren, S. (2022). "Music therapy for stress reduction: a systematic review and meta-analysis." Health Psychology Review, 16(1), 134-159. DOI 10.1080/17437199.2020.1846580. VERIFIED. Does not support app delivered listening: this is therapist delivered music therapy, explicitly distinguished from recorded music. Effects were larger in non randomised designs and larger against waiting lists than against active controls, which is a design inflation signal.No sostiene la escucha entregada por una app: es musicoterapia impartida por terapeuta, explícitamente distinguida de la música grabada. Los efectos fueron mayores en diseños no aleatorizados y mayores frente a listas de espera que frente a controles activos, lo que es una señal de inflación por diseño.
  81. Aalbers, S., and colleagues (2017). "Music therapy for depression." Cochrane Database of Systematic Reviews, 2017(11), CD004517. DOI 10.1002/14651858.CD004517.pub3. VERIFIED. Does not support app use: the certainty of evidence is low to moderate, the therapy is therapist delivered and the populations are clinical.No sostiene el uso mediante app: la certeza de la evidencia es baja a moderada, la terapia la imparte un terapeuta y las poblaciones son clínicas.
  82. Bradt, J., Dileo, C., and Shim, M. (2013). "Music interventions for preoperative anxiety." Cochrane Database of Systematic Reviews, 2013(6), CD006908. DOI 10.1002/14651858.CD006908.pub2. VERIFIED. Does not support strong inference: the authors flag high risk of bias in most trials due to lack of blinding, and there was no effect on systolic blood pressure, respiratory rate or skin temperature.No sostiene una inferencia sólida: los autores señalan alto riesgo de sesgo en la mayoría de los ensayos por falta de ciego, y no hubo efecto sobre la presión sistólica, la frecuencia respiratoria ni la temperatura cutánea.
  83. Thaut, M. H., McIntosh, G. C., Rice, R. R., Miller, R. A., Rathbun, J., and Brault, J. M. (1996). "Rhythmic auditory stimulation in gait training for Parkinson's disease patients." Movement Disorders, 11(2), 193-200. DOI 10.1002/mds.870110213. VERIFIED. The foundational rhythmic stimulation gait study, with fifteen participants. It concerns rhythm, that is the temporal envelope, and says nothing about a carrier tone's pitch.El estudio fundacional de marcha con estimulación rítmica, con quince participantes. Trata del ritmo, es decir de la envolvente temporal, y no dice nada sobre el tono de una portadora.
  84. Ye, X., Li, L., He, R., Jia, Y., and Poon, W. (2022). "Rhythmic auditory stimulation promotes gait recovery in Parkinson's patients: a systematic review and meta-analysis." Frontiers in Neurology, 13, 940419. DOI 10.3389/fneur.2022.940419. VERIFIED. Supports rhythmic entrainment in a motor domain across eighteen randomised trials. It supports nothing about pitch, mood or frequency healing.Sostiene el arrastre rítmico en un dominio motor a lo largo de dieciocho ensayos aleatorizados. No sostiene nada sobre tono, ánimo ni sanación por frecuencias.
  85. Doelling, K. B., and Poeppel, D. (2015). "Cortical entrainment to music and its modulation by expertise." PNAS, 112(45), E6233-E6242. DOI 10.1073/pnas.1508431112. VERIFIED. Supports cortical tracking of the temporal envelope and note rate. It says nothing about a carrier tone's pitch, and conflating the two is the core scientific error in the healing frequency category.Sostiene el seguimiento cortical de la envolvente temporal y la tasa de notas. No dice nada sobre el tono de una portadora, y confundir ambas cosas es el error científico central de la categoría de frecuencias sanadoras.
  86. Alvarsson, J. J., Wiens, S., and Nilsson, M. E. (2010). "Stress Recovery during Exposure to Nature Sound and Environmental Noise." International Journal of Environmental Research and Public Health, 7(3), 1036-1046. DOI 10.3390/ijerph7031036. VERIFIED. Does not support parasympathetic claims: the authors state verbatim that they found no consistent effect of type of sound on high frequency variability. Small single laboratory study.No sostiene afirmaciones parasimpáticas: los autores afirman literalmente que no hallaron un efecto sistemático del tipo de sonido sobre la VFC de alta frecuencia. Estudio pequeño de un solo laboratorio.
  87. Gould van Praag, C. D., and colleagues (2017). "Mind-wandering and alterations to default mode network connectivity when listening to naturalistic versus artificial sounds." Scientific Reports, 7, 45273. DOI 10.1038/srep45273. VERIFIED. Does not support increased default mode activity, which the authors did not find, and it is a very small mechanistic imaging study rather than evidence of clinical benefit.No sostiene un aumento de la actividad de la red por defecto, que los autores no hallaron, y es un estudio de imagen mecanicista muy pequeño y no evidencia de beneficio clínico.
  88. Buxton, R. T., Pearson, A. L., Allou, C., Fristrup, K., and Wittemyer, G. (2021). "A synthesis of health benefits of natural sounds and their distribution in national parks." PNAS, 118(14), e2013097118. DOI 10.1073/pnas.2013097118. VERIFIED. Does not support a precise estimate: note the enormous confidence interval on the positive affect figure, which barely excludes zero.No sostiene una estimación precisa: obsérvese el enorme intervalo de confianza de la cifra de afecto positivo, que apenas excluye el cero.
  89. Fan, L., and Baharum, M. R. (2024). "The effect of exposure to natural sounds on stress reduction: a systematic review and meta-analysis." Stress, 27(1), 2402519. DOI 10.1080/10253890.2024.2402519. VERIFIED. Does not support self reported stress reduction, which was not significant, nor several other physiological endpoints. The authors call the evidence slightly inconsistent. This is the most useful honest counterweight for the ambient beds.No sostiene la reducción del estrés autorreportado, que no fue significativa, ni varios otros desenlaces fisiológicos. Los autores describen la evidencia como algo heterogénea. Es el contrapeso honesto más útil para las bases ambientales.
  90. Horowitz, L. G., and Puleo, J. S. (1999). Healing Codes for the Biological Apocalypse. Sandpoint, ID: Tetrahedron Publishing Group, 537 pages. ISBN 0923550399. VERIFIED, including the full text, which was retrieved and searched. Supports nothing scientifically. It is the origin document for the modern Solfeggio claim, its derivation is explicitly numerological, it never states the six numbers in hertz, it does not contain 285 or 963 at all, its central genetic claim is footnoted to a personal communication from a commercial product's inventor, and it is self published by the first author's own imprint.No sostiene nada científicamente. Es el documento de origen de la afirmación Solfeggio moderna, su derivación es explícitamente numerológica, nunca expresa los seis números en hercios, no contiene 285 ni 963 en absoluto, su afirmación genética central se referencia a una comunicación personal del inventor de un producto comercial, y está autopublicado por el sello del primer autor.
  91. Bullinger, E. W. (1894, fourth revised edition 1921). Number in Scripture: Its Supernatural Design and Spiritual Significance. London: Eyre and Spottiswoode. VERIFIED, full text retrieved. Supports nothing scientifically. It is listed because it is the actual source of the musicological passage that entry 90 attributes to a named musicology professor; both texts were matched word for word.No sostiene nada científicamente. Se lista porque es la fuente real del pasaje musicológico que la entrada 90 atribuye a un profesor de musicología nombrado; ambos textos coincidieron palabra por palabra.
  92. Pesce, D. (2010). "Guido d'Arezzo, Ut queant laxis, and Musical Understanding." In Music Education in the Middle Ages and the Renaissance, Bloomington: Indiana University Press. ISBN 9780253354860. Page range unverified. VERIFIED. Supports the finding that the solfège syllables are relative, movable names denoting scale degrees in a sight singing pedagogy. It categorically does not support the attachment of any fixed frequency to them, since pitch as cycles per second did not exist as a concept.Sostiene el hallazgo de que las sílabas del solfeo son nombres relativos y móviles que designan grados de la escala en una pedagogía de canto a primera vista. No sostiene en absoluto la asignación de ninguna frecuencia fija a ellas, ya que el tono como ciclos por segundo no existía como concepto.
  93. Haynes, B. (2002). A History of Performing Pitch: The Story of "A". Lanham, MD: Scarecrow Press, 632 pages. ISBN 9780810841857. VERIFIED. Supports the fact that performing pitch varied widely across Europe for four centuries and disproves several common myths about pitch. It supports no claim that any historical pitch was standardised.Sostiene el hecho de que el tono de interpretación varió ampliamente por Europa durante cuatro siglos y refuta varios mitos comunes sobre el tono. No sostiene ninguna afirmación de que algún tono histórico estuviera estandarizado.
  94. ISO 16:1975, Acoustics: Standard tuning frequency (Standard musical pitch). International Organization for Standardization. PARTIALLY VERIFIED: designation, title and year confirmed across three catalogues; exact clause wording unobtainable because the publisher blocks automated retrieval. Supports the clean, defensible statement that a standardised reference pitch is a twentieth century artefact, which makes any claim that a specific hertz number is ancient impossible on its face. Do not quote its clauses verbatim.Sostiene la afirmación limpia y defendible de que un tono de referencia estandarizado es un artefacto del siglo veinte, lo que hace imposible en su propia superficie cualquier afirmación de que un número concreto de hercios sea antiguo. No citar sus cláusulas literalmente.
  95. Babayi Daylari, T., Riazi, G. H., Pooyan, Sh., Fathi, E., and Hedayati Katouli, F. (2019). "Influence of various intensities of 528 Hz sound-wave in production of testosterone in rat's brain and analysis of behavioral changes." Genes and Genomics, 41(2), 201-211. DOI 10.1007/s13258-018-0753-6. VERIFIED. Does not support any human claim: rats at one hundred decibels, which is roughly a chainsaw and not app playback.No sostiene ninguna afirmación humana: ratas a cien decibelios, que es aproximadamente una motosierra y no la reproducción de una app.
  96. Dos Santos, A. C., de Abreu, M. S., de Mello, G. P., and colleagues (2023). "Solfeggio-frequency music exposure reverses cognitive and endocrine deficits evoked by a 24-h light exposure in adult zebrafish." Behavioural Brain Research, 450, 114461. DOI 10.1016/j.bbr.2023.114461. VERIFIED. Does not support any human claim: the subjects are fish, and the abstract does not even specify which frequencies were used. It is the only indexed study using the term in a therapeutic sense.No sostiene ninguna afirmación humana: los sujetos son peces, y el resumen ni siquiera especifica qué frecuencias se usaron. Es el único estudio indexado que usa el término en sentido terapéutico.
  97. Akimoto, K., Hu, A., Yamaguchi, T., and Kobayashi, H. (2018). "Effect of 528 Hz Music on the Endocrine System and Autonomic Nervous System." Health, 10(9), 1159-1170. DOI 10.4236/health.2018.109088. VERIFIED. Does not support any deployable claim: nine participants, unblinded, single laboratory, published by a house widely listed as predatory, and never replicated. It is named here because it is the study most often cited by marketers of the frequency.No sostiene ninguna afirmación utilizable: nueve participantes, sin ciego, un solo laboratorio, publicado por una editorial ampliamente catalogada como depredadora y nunca replicado. Se nombra aquí porque es el estudio más citado por los comercializadores de la frecuencia.
  98. Bhoot, A., Chowdhury, A. B., Shah, H., and Vaishnav, B. (2025). "Effect of OM Chanting of 528Hz Frequency on Heart Rate Variability, Psychological Wellbeing, and Quality of Sleep in Patients of Hypertension: A Randomised Controlled Trial." Annals of Neurosciences, online ahead of print. DOI 10.1177/09727531251390261. VERIFIED. Does not support a frequency specific effect: it is open label with no blinding described and a control of standard care with no active audio comparator, so it cannot separate the frequency from the act of chanting daily for a month.No sostiene un efecto específico de la frecuencia: es abierto, sin ciego descrito, y con un control de atención estándar sin comparador de audio activo, así que no puede separar la frecuencia del acto de cantar a diario durante un mes.
  99. Bozok, Ü. G., Özcan, G. B., Bayraktar, B., and Özen, D. (2026). "Acute Music-Frequency Exposure Modulates Salivary Stress and Neurotrophic Markers in Young Adults: A Randomized Controlled Trial." Brain and Behavior, 16(5), e71452. DOI 10.1002/brb3.71452. VERIFIED. The largest and best designed study of the set, with 162 participants and three arms. It does not support a cognitive or clinical benefit, since no significant cognitive performance difference was found, and its salivary endpoints are non standard, weakly validated and unreplicated after a single twenty minute exposure.El estudio mayor y mejor diseñado del conjunto, con 162 participantes y tres brazos. No sostiene un beneficio cognitivo ni clínico, ya que no se halló diferencia significativa de rendimiento cognitivo, y sus desenlaces salivales son no estándar, débilmente validados y sin replicación tras una única exposición de veinte minutos.
  100. Whitney, E., Wang, J.-Y., Haslett, J., Ramnot, A., and Siddiqi, J. (2026). "Healing Effects of Music, Healing Frequencies, and Binaural Beats for Traumatic Brain Injury and Stroke: A Review." Cureus, 18(2), e104261. DOI 10.7759/cureus.104261. VERIFIED. Included as an example of the problem rather than as support. It is a narrative, non systematic review in a journal with minimal peer review, repeating marketing claims with hedged sourcing. It is how a marketing claim acquires an index identifier.Incluida como ejemplo del problema y no como respaldo. Es una revisión narrativa y no sistemática en una revista con revisión por pares mínima, que repite afirmaciones de marketing con fuentes matizadas. Así es como una afirmación de marketing adquiere un identificador de indexación.
  101. United States Federal Trade Commission. Warning letter to Bioenergy Wellness Miami, 3 April 2020. VERIFIED, full text read. Supports the regulatory finding that healing frequency claims are not supported by competent and reliable scientific evidence, and that the marketer was ordered to cease making them. It supports no scientific claim of any kind.Sostiene el hallazgo regulatorio de que las afirmaciones de frecuencias sanadoras no están respaldadas por evidencia científica competente y fiable, y que se ordenó al comercializador cesar. No sostiene ninguna afirmación científica.
  102. United States Federal Trade Commission. Warning letter to Musical Medicine, 20 April 2020. VERIFIED, full text read. A direct regulatory action against a healing frequency audio product, the closest available analogue to this app's category. It is the reason the symbolic badge matters commercially and not only intellectually.Una acción regulatoria directa contra un producto de audio de frecuencias sanadoras, el análogo más cercano disponible a la categoría de esta app. Es la razón por la que la insignia simbólica importa comercialmente y no solo intelectualmente.
  103. National Center for Complementary and Integrative Health. "Music and Health: What You Need To Know." Updated September 2022. VERIFIED. Supports the statement that even music based intervention research is preliminary. Notably, the page contains no mention of sound healing, healing frequencies, Solfeggio or binaural beats at all, so it cannot be cited in support of any of them.Sostiene la afirmación de que incluso la investigación sobre intervenciones musicales es preliminar. Notablemente, la página no menciona en absoluto la sanación sonora, las frecuencias sanadoras, el Solfeggio ni los batidos binaurales, así que no puede citarse en apoyo de ninguno de ellos.
  104. Hawkins, D. R. (1995). Power vs. Force: The Hidden Determinants of Human Behavior. Sedona, AZ: Veritas Publishing; later Carlsbad, CA: Hay House, first printing February 2002, ISBN 9781561709335. VERIFIED. Supports nothing empirically. It is a self published book, its subject classification includes applied kinesiology, and the book is asserted, by the very method it introduces, to calibrate at a specific level.No sostiene nada empíricamente. Es un libro autopublicado, su clasificación temática incluye la kinesiología aplicada, y se afirma que el libro calibra en un nivel concreto por el mismo método que introduce.
  105. Veritas Publishing. Official biography and frequently asked questions of the author of entry 104. VERIFIED as self published claims. Supports only the description of the calibration method in the rights holder's own words, and the unfalsifiability clause stating that the technique works only for persons who themselves calibrate above a given level. It supports no empirical claim, and the clause makes every failed replication attributable to the tester rather than to the method.Sostiene solo la descripción del método de calibración en palabras del propio titular de derechos, y la cláusula de infalsabilidad que afirma que la técnica solo funciona en personas que calibran por encima de cierto nivel. No sostiene ninguna afirmación empírica, y la cláusula hace que toda replicación fallida sea atribuible al evaluador y no al método.
  106. United States Government Accountability Office (2004). Diploma Mills: Federal Employees Have Obtained Degrees from Diploma Mills and Other Unaccredited Schools, Some at Government Expense. GAO-04-771T, 11 May 2004. VERIFIED, a federal primary source. Supports the fact that the institution which awarded the doctorate used in the marketing of entry 104 was unaccredited and was ordered by a California superior court to cease operations in December 1999. It supports nothing about the individual's separate and genuine medical degree, and the two credentials should never be presented as equivalent.Sostiene el hecho de que la institución que otorgó el doctorado usado en la comunicación de la entrada 104 no estaba acreditada y que un tribunal superior de California le ordenó cesar operaciones en diciembre de 1999. No sostiene nada sobre el título médico independiente y genuino de la persona, y las dos credenciales no deben presentarse como equivalentes.
  107. Hall, S., Lewith, G., Brien, S., and Little, P. (2008). "A review of the literature in applied and specialised kinesiology." Forschende Komplementärmedizin, 15(1), 40-46. DOI 10.1159/000112820. VERIFIED. Supports the conclusion, stated verbatim, that there is insufficient evidence for diagnostic accuracy, for the validity of muscle response, and for effectiveness for any condition. All twenty two appraised studies scored zero out of five on the standard quality instrument.Sostiene la conclusión, literal, de que hay evidencia insuficiente para la exactitud diagnóstica, para la validez de la respuesta muscular y para la eficacia en cualquier condición. Los veintidós estudios evaluados obtuvieron cero sobre cinco en el instrumento de calidad estándar.
  108. Lüdtke, R., Kunz, B., Seeber, N., and Ring, J. (2001). "Test-retest-reliability and validity of the Kinesiology muscle test." Complementary Therapies in Medicine, 9(3), 141-145. DOI 10.1054/ctim.2001.0455. VERIFIED. Supports the finding, stated verbatim, that an overall agreement coefficient of 0.03 indicates the test is not reliable, with sensitivity and specificity at chance levels.Sostiene el hallazgo, literal, de que un coeficiente global de concordancia de 0,03 indica que la prueba no es fiable, con sensibilidad y especificidad a niveles de azar.
  109. Kenney, J. J., Clemens, R., and Forsythe, K. D. (1988). "Applied kinesiology unreliable for assessing nutrient status." Journal of the American Dietetic Association, 88(6), 698-704. Digital identifier unverified: this predates the identifier system. VERIFIED. Supports the conclusion, stated verbatim, that applied kinesiology is no more useful than random guessing, with no agreement between testers and no correlation with biochemical tests.Sostiene la conclusión, literal, de que la kinesiología aplicada no es más útil que adivinar al azar, sin concordancia entre evaluadores y sin correlación con las pruebas bioquímicas.
  110. Schwartz, S. A., Utts, J., Spottiswoode, S. J. P., Shade, C. W., Tully, L., Morris, W. F., and Nachman, G. (2014). "A double-blind, randomized study to assess the validity of applied kinesiology as a diagnostic tool and as a nonlocal proximity effect." EXPLORE, 10(2), 99-108. DOI 10.1016/j.explore.2013.12.002. VERIFIED. Especially probative because it was published in a venue sympathetic to unconventional modalities, with a statistician co author known for favourable analyses in that field, and it still came out at chance. Note the common misattribution: this paper is in the journal named here and not in the alternative medicine journal it is often credited to.Especialmente probatorio porque se publicó en una revista simpatizante con modalidades no convencionales, con un coautor estadístico conocido por análisis favorables en ese campo, y aun así salió en el azar. Nótese la atribución errónea habitual: este artículo está en la revista aquí nombrada y no en la revista de medicina alternativa a la que suele adjudicarse.
  111. Kelso, J. M. (2018). "Unproven Diagnostic Tests for Adverse Reactions to Foods." Journal of Allergy and Clinical Immunology: In Practice, 6(2), 362-365. DOI 10.1016/j.jaip.2017.08.021. VERIFIED. An official professional society journal listing applied kinesiology among unproven tests, stating that most such tests lack biologic plausibility and that controlled studies show a lack of reproducibility.Una revista oficial de sociedad profesional que lista la kinesiología aplicada entre las pruebas no probadas, y afirma que la mayoría de esas pruebas carecen de plausibilidad biológica y que los estudios controlados muestran falta de reproducibilidad.
  112. Choudhury, D. (2020). "Choosing Wisely on the use of alternative testing in the diagnosis of food allergy and food intolerance." British Society for Allergy and Clinical Immunology, February 2020. VERIFIED, full document read. Its applied kinesiology row reads verbatim that there is no evidence for diagnostic accuracy or effectiveness for any condition, and its headline recommendation warns that alternative testing may endanger patients through misdiagnosis.Su fila de kinesiología aplicada dice literalmente que no hay evidencia de exactitud diagnóstica ni de eficacia para ninguna condición, y su recomendación principal advierte de que las pruebas alternativas pueden poner en peligro a los pacientes por diagnóstico erróneo.
  113. Systematic search for peer reviewed support of the Hawkins calibration scale. VERIFIED as a negative finding by exhaustive search of two major indexes. The result is zero. No peer reviewed empirical study tests, validates or replicates the consciousness calibration scale. The entire evidentiary basis is self published books from the author's own company. An absence is itself a finding, and this one is recorded so that it is auditable.El resultado es cero. Ningún estudio empírico revisado por pares prueba, valida ni replica la escala de calibración de conciencia. Toda la base probatoria son libros autopublicados por la propia empresa del autor. Una ausencia es en sí un hallazgo, y este se registra para que sea auditable.
  114. United States Food and Drug Administration. General Wellness: Policy for Low Risk Devices. Issued 6 January 2026. Docket FDA-2014-N-1039. VERIFIED, document retrieved and read. This version expressly supersedes the September 2019 version, which must not be cited as current. It supports the two part general wellness test and the new optical sensing provisions, and it explicitly does not establish that any product covered by it has been shown to be safe or effective.Esta versión sustituye expresamente a la de septiembre de 2019, que no debe citarse como vigente. Sostiene la prueba de dos partes de bienestar general y las nuevas disposiciones sobre detección óptica, y explícitamente no establece que ningún producto amparado por ella haya demostrado ser seguro ni eficaz.
  115. United States Food and Drug Administration. Policy for Device Software Functions and Mobile Medical Applications. Issued 28 September 2022. Docket FDA-2011-D-0530. VERIFIED, document retrieved and read. Supports the boundary between software that is not a device at all and enforcement discretion devices. It does not support any claim that a product marketed to people with diagnosed conditions remains outside the device definition.Sostiene la frontera entre el software que no es dispositivo en absoluto y los dispositivos con discrecionalidad de aplicación. No sostiene ninguna afirmación de que un producto comercializado a personas con condiciones diagnosticadas quede fuera de la definición de dispositivo.
  116. United States Food and Drug Administration. Clinical Decision Support Software. Issued 29 January 2026. Docket FDA-2017-D-6569. VERIFIED, document retrieved and read. Supports the finding that the non device carve out requires all four statutory criteria, that consumer facing recommendations meet the device definition by the guidance's own terms, and that continuous or streaming physiological measurement constitutes a pattern. Note that this text supersedes two earlier versions.Sostiene el hallazgo de que la exención de no dispositivo exige los cuatro criterios legales, que las recomendaciones dirigidas al consumidor cumplen la definición de dispositivo por los propios términos de la guía, y que la medición fisiológica continua o en flujo constituye un patrón. Nótese que este texto sustituye a dos versiones anteriores.
  117. Regulation (EU) 2017/745 of the European Parliament and of the Council of 5 April 2017 on medical devices. CELEX 32017R0745. VERIFIED, consolidated text retrieved. Supports the inclusion of software in the definition of a medical device and the classification rule for software. It does not support classification of a product that never qualifies, since classification is only reached after qualification.Sostiene la inclusión del software en la definición de producto sanitario y la regla de clasificación para software. No sostiene la clasificación de un producto que nunca califica, ya que la clasificación solo se alcanza tras la calificación.
  118. Recital 19 of Regulation (EU) 2017/745. VERIFIED, verbatim. The clearest primary statement of the wellness carve out, namely that software intended for life style and well being purposes is not a medical device. It supports nothing about products whose stated intended purpose is medical.La declaración primaria más clara de la exención de bienestar, a saber, que el software destinado a fines de estilo de vida y bienestar no es un producto sanitario. No sostiene nada sobre productos cuyo propósito previsto declarado sea médico.
  119. Medical Device Coordination Group. MDCG 2019-11 revision 1: Guidance on Qualification and Classification of Software. October 2019, revised June 2025. VERIFIED, both versions retrieved. The original 2019 version contains no occurrence of the words lifestyle, wellbeing or wellness at all, so only the 2025 revision supports the wellness carve out language. The revision also states the important corollary that risk of harm is not a criterion for qualification, only for classification.La versión original de 2019 no contiene ninguna aparición de las palabras estilo de vida, bienestar ni wellness, así que solo la revisión de 2025 sostiene el lenguaje de exención de bienestar. La revisión enuncia además el corolario importante de que el riesgo de daño no es criterio de calificación, solo de clasificación.
  120. Apple Inc. App Store Review Guidelines. Last updated 8 June 2026. VERIFIED, current text retrieved. Supports the disclose and validate obligation for health measurement accuracy claims, the requirement to remind users to consult a doctor, and the prohibition on writing false or inaccurate data into the platform health store. Its enumerated prohibition targets sensor only measurement of specific clinical parameters and does not name mood estimation, but the disclosure obligation applies regardless.Sostiene la obligación de divulgar y validar las afirmaciones de exactitud de mediciones de salud, el requisito de recordar al usuario que consulte con un médico y la prohibición de escribir datos falsos o inexactos en el almacén de salud de la plataforma. Su prohibición enumerada apunta a la medición de parámetros clínicos concretos solo con sensores y no nombra la estimación de ánimo, pero la obligación de divulgación se aplica igualmente.
  121. Apple Inc. "Protecting user privacy", HealthKit framework documentation. VERIFIED, retrieved through the documentation data endpoint. Supports the requirements that health data use be clear in both marketing text and interface, that it not be used for advertising, and that it not be sold to advertising platforms, data brokers or information resellers. It imposes no claim substantiation requirement of its own; that obligation lives in the review guidelines, entry 120.Sostiene los requisitos de que el uso de datos de salud sea claro tanto en el texto de marketing como en la interfaz, de que no se use para publicidad y de que no se venda a plataformas publicitarias, intermediarios de datos ni revendedores de información. No impone por sí misma ningún requisito de sustanciación de afirmaciones; esa obligación vive en las directrices de revisión, entrada 120.
  122. United States Federal Trade Commission (December 2022). Health Products Compliance Guidance. VERIFIED, document retrieved and read. Supports the competent and reliable scientific evidence standard, the general expectation of randomised controlled human clinical testing for health benefit claims, and the fact that the guidance reaches health related apps with advertising defined broadly enough to cover store listing copy, screenshots and in app claims. It does not exempt any product that is outside device regulation.Sostiene el estándar de evidencia científica competente y fiable, la expectativa general de ensayos clínicos humanos aleatorizados y controlados para afirmaciones de beneficio de salud, y el hecho de que la guía alcanza a las apps relacionadas con la salud con una definición de publicidad lo bastante amplia como para cubrir el texto de la ficha de tienda, las capturas y las afirmaciones dentro de la app. No exime a ningún producto por estar fuera de la regulación de dispositivos.
  123. Kroenke, K., Spitzer, R. L., and Williams, J. B. W. (2001). "The PHQ-9: Validity of a Brief Depression Severity Measure." Journal of General Internal Medicine, 16(9), 606-613. DOI 10.1046/j.1525-1497.2001.016009606.x. VERIFIED. Does not support use as a diagnostic instrument, and critically for this product, its operating characteristics apply only to the administered questionnaire. They carry no validity whatsoever when a score is inferred from sensor data rather than answered by the person.No sostiene su uso como instrumento diagnóstico y, críticamente para este producto, sus características operativas se aplican solo al cuestionario administrado. No conservan validez alguna cuando una puntuación se infiere de datos de sensores en lugar de ser respondida por la persona.
  124. Spitzer, R. L., Kroenke, K., Williams, J. B. W., and Löwe, B. (2006). "A brief measure for assessing generalized anxiety disorder: the GAD-7." Archives of Internal Medicine, 166(10), 1092-1097. DOI 10.1001/archinte.166.10.1092. VERIFIED. Does not support discrimination between anxiety disorder subtypes, and its specificity is notably weaker than its sensitivity. The same inference caveat as entry 123 applies in full.No sostiene la discriminación entre subtipos de trastorno de ansiedad, y su especificidad es notablemente más débil que su sensibilidad. Se aplica íntegramente la misma salvedad sobre la inferencia que en la entrada 123.
  125. PHQ Screeners licensing terms. VERIFIED, verbatim. Supports the fact that the instruments are free to download and use and that no permission is required to reproduce, translate, display or distribute them, subject to keeping the attribution footer. Licensing is not a barrier; validity of inference is.Sostiene que los instrumentos son de descarga y uso libres y que no se requiere permiso para reproducirlos, traducirlos, mostrarlos o distribuirlos, siempre que se conserve el pie de atribución. La licencia no es la barrera; la validez de la inferencia sí.
  126. De Angel, V., Lewis, S., White, K., and colleagues (2022). "Digital health tools for the passive monitoring of depression: a systematic review of methods." npj Digital Medicine, 5, 3. DOI 10.1038/s41746-021-00548-8. VERIFIED. Does not support any deployable accuracy claim: no meta analysis was possible due to heterogeneity, the median study sample was 58, only four studies had published protocols, and the review documents widespread failure to report missing data handling alongside selective reporting favouring positive findings.No sostiene ninguna afirmación de exactitud utilizable: el metaanálisis fue imposible por heterogeneidad, la muestra mediana por estudio fue de 58, solo cuatro estudios tenían protocolo publicado, y la revisión documenta un fallo generalizado en reportar el manejo de datos faltantes junto con un reporte selectivo que favorece los hallazgos positivos.
  127. Moshe, I., Terhorst, Y., Opoku Asare, K., and colleagues (2021). "Predicting Symptoms of Depression and Anxiety Using Smartphone and Wearable Data." Frontiers in Psychiatry, 12, 625247. DOI 10.3389/fpsyt.2021.625247. VERIFIED. Does not support the framing its title implies: it is observational and non causal, the authors state it was likely underpowered, and the sample is non clinical, single platform and demographically narrow. Its most useful finding for this product is that self reported valence outperformed every passive sensor.No sostiene el encuadre que su título sugiere: es observacional y no causal, los autores afirman que probablemente carecía de potencia, y la muestra es no clínica, de una sola plataforma y demográficamente estrecha. Su hallazgo más útil para este producto es que la valencia autorreportada superó a todos los sensores pasivos.
  128. Wang, R., Chen, F., Chen, Z., Li, T., Harari, G., Tignor, S., Zhou, X., Ben-Zeev, D., and Campbell, A. T. (2014). "StudentLife: Assessing Mental Health, Academic Performance and Behavioral Trends of College Students using Smartphones." UbiComp 2014, 3-14. DOI 10.1145/2632048.2632054. VERIFIED, full text read. Does not support any detection or diagnosis claim: correlations of about 0.33 to 0.40 explain roughly eleven to sixteen percent of variance, the significance values are uncorrected across dozens of comparisons, no discrimination statistic is reported anywhere, and only two of forty eight participants scored in the moderately severe range. A common misattribution to avoid: location entropy is not a finding of this study, and no mobility feature correlated with the depression score.No sostiene ninguna afirmación de detección ni diagnóstico: correlaciones de unos 0,33 a 0,40 explican en torno al once o dieciséis por ciento de la varianza, los valores de significación no están corregidos entre decenas de comparaciones, no se reporta ningún estadístico de discriminación, y solo dos de cuarenta y ocho participantes puntuaron en el rango moderadamente grave. Una atribución errónea habitual a evitar: la entropía de ubicación no es un hallazgo de este estudio, y ninguna señal de movilidad correlacionó con la puntuación de depresión.
  129. Cummins, N., Scherer, S., Krajewski, J., Schnieder, S., Epps, J., and Quatieri, T. F. (2015). "A review of depression and suicide risk assessment using speech analysis." Speech Communication, 71, 10-49. DOI 10.1016/j.specom.2015.03.004. VERIFIED. Supports the acoustic only feature approach as a research area, since its subject is exactly prosodic analysis without semantic content. It does not support deployment grade accuracy.Sostiene el enfoque de señales solo acústicas como área de investigación, ya que su tema es exactamente el análisis prosódico sin contenido semántico. No sostiene exactitud de grado desplegable.
  130. Low, D. M., Bentley, K. H., and Ghosh, S. S. (2020). "Automated assessment of psychiatric disorders using speech: a systematic review." Laryngoscope Investigative Otolaryngology, 5(1), 96-116. DOI 10.1002/lio2.354. VERIFIED. Does not support generalisable performance: the authors flag small samples, incomparable feature and method choices, and explicit reproducibility and generalisability problems across the 127 studies reviewed.No sostiene un rendimiento generalizable: los autores señalan muestras pequeñas, elecciones de señales y métodos no comparables y problemas explícitos de reproducibilidad y generalización en los 127 estudios revisados.
  131. Valstar, M., Gratch, J., Schuller, B., and colleagues (2016). "AVEC 2016: Depression, Mood, and Emotion Recognition Workshop and Challenge." DOI 10.1145/2988257.2988258. VERIFIED from the third preprint version, since earlier versions contain placeholder results. Supports the real accuracy ceiling for speech based depression estimation, and it is devastating: every audio, video and fusion baseline is worse than a constant predictor that outputs the population mean for everyone. Note also that most published figures on this dataset are development set numbers on 35 people, since the test labels are not public.Sostiene el techo real de exactitud de la estimación de depresión a partir del habla, y es demoledor: toda línea base de audio, vídeo y fusión es peor que un predictor constante que devuelve la media poblacional para todos. Nótese además que la mayoría de cifras publicadas sobre este conjunto de datos son del conjunto de desarrollo con 35 personas, ya que las etiquetas de prueba no son públicas.
  132. Ringeval, F., Schuller, B., Valstar, M., and colleagues (2017). "AVEC 2017: Real-life Depression, and Affect Recognition Workshop and Challenge." DOI 10.1145/3133944.3133953. VERIFIED. Confirms the same constant predictor comparison. A correction to a common assumption: the depression sub challenge metric was a root mean squared error and not a concordance coefficient, which applied to the separate affect task.Confirma la misma comparación con el predictor constante. Corrección a una suposición habitual: la métrica del subdesafío de depresión fue un error cuadrático medio y no un coeficiente de concordancia, que se aplicó a la tarea afectiva separada.
  133. Burdisso, S., Reyes-Ramírez, E., Villatoro-Tello, E., and colleagues (2024). "On the Validity of Using the Therapist's prompts in Automatic Depression Detection from Clinical Interviews." Clinical Natural Language Processing Workshop, 2024. DOI 10.18653/v1/2024.clinicalnlp-1.8. VERIFIED. Supports the finding that a model seeing only the interviewer's questions and zero patient speech matches or beats every published participant text model, which the authors attribute to discriminative shortcuts. The implication is that a strong score on that benchmark is not evidence of a genuine acoustic marker, and any future voice model must be validated against this failure mode.Sostiene el hallazgo de que un modelo que ve solo las preguntas del entrevistador y ninguna habla del paciente iguala o supera a todo modelo publicado sobre el texto del participante, lo que los autores atribuyen a atajos discriminativos. La implicación es que una puntuación alta en esa referencia no es prueba de un marcador acústico genuino, y todo modelo de voz futuro debe validarse frente a este modo de fallo.
  134. Braunschweiler, N., Doddipatla, R., Keizer, S., and Stoyanchev, S. (2021). "A Study on Cross-Corpus Speech Emotion Recognition and Data Augmentation." ASRU 2021, 24-30. DOI 10.1109/ASRU51503.2021.9687987. VERIFIED. Supports the quantification of cross corpus generalisation failure. It does not support a comparison against a twenty five percent chance level, since the reported accuracy is a one against rest binary measure.Sostiene la cuantificación del fallo de generalización entre corpus. No sostiene una comparación contra un nivel de azar del veinticinco por ciento, ya que la exactitud reportada es una medida binaria de uno contra el resto.
  135. Bailey, A., and Plumbley, M. D. (2021). "Gender Bias in Depression Detection Using Audio Features." EUSIPCO 2021, 596-600. DOI 10.23919/EUSIPCO54536.2021.9615933. VERIFIED. Supports the finding that rebalancing gender against class drops a standard model's score by fourteen percent, and records that the widely used training set contains only fourteen depressed male participants. It supports no claim that any model is unbiased.Sostiene el hallazgo de que reequilibrar sexo frente a clase reduce la puntuación de un modelo estándar en un catorce por ciento, y registra que el conjunto de entrenamiento más usado contiene solo catorce participantes varones con depresión. No sostiene ninguna afirmación de que un modelo carezca de sesgo.
  136. Nepal, S., Pillai, A., Wang, W., and colleagues, including Jacobson, N. C. and Campbell, A. T. (2024). "MoodCapture: Depression Detection using In-the-Wild Smartphone Images." CHI 2024. DOI 10.1145/3613904.3642680. VERIFIED, full text extracted. Does not support nearly anything it is popularly cited for: balanced accuracy of 0.60 against a 0.52 baseline and a correlation coefficient of 0.14 are negligible agreement, all participants had a clinical diagnosis with no healthy controls, and the authors describe the dataset as primarily white female, limited in size and diversity, and reliant on self report. Note also that the first author is Nepal, not the name that appears in the project's specification.No sostiene casi nada de aquello para lo que se cita popularmente: una exactitud equilibrada de 0,60 frente a una línea base de 0,52 y un coeficiente de correlación de 0,14 son concordancia insignificante, todos los participantes tenían diagnóstico clínico y no había controles sanos, y los autores describen el conjunto de datos como principalmente de mujeres blancas, limitado en tamaño y diversidad y dependiente del autorreporte. Nótese además que el primer autor es Nepal y no el nombre que aparece en la especificación del proyecto.
  137. Baglioni, C., Nanovska, S., Regen, W., and colleagues (2016). "Sleep and mental disorders: a meta-analysis of polysomnographic research." Psychological Bulletin, 142(9), 969-990. DOI 10.1037/bul0000053. VERIFIED. Does not support any predictive or temporal claim: every included study is cross sectional case control laboratory polysomnography comparing already diagnosed patients to controls at one time point, and the exposure is a modality that no phone or wrist wearable measures.No sostiene ninguna afirmación predictiva ni temporal: todos los estudios incluidos son de casos y controles transversales con polisomnografía de laboratorio que comparan pacientes ya diagnosticados con controles en un solo momento, y la exposición es una modalidad que ningún teléfono ni dispositivo de muñeca mide.
  138. Baglioni, C., Battagliese, G., Feige, B., and colleagues (2011). "Insomnia as a predictor of depression: a meta-analytic evaluation of longitudinal epidemiological studies." Journal of Affective Disorders, 135(1-3), 10-19. DOI 10.1016/j.jad.2011.01.011. VERIFIED. This is the paper that supports the predictive claim, with a pooled odds ratio of 2.60 across 21 studies, and it is the correct citation where the project's specification currently cites the 2016 meta analysis. The total pooled participant count could not be confirmed.Este es el artículo que sostiene la afirmación predictiva, con una razón de probabilidades agrupada de 2,60 en 21 estudios, y es la cita correcta allí donde la especificación del proyecto cita hoy el metaanálisis de 2016. El recuento total agrupado de participantes no pudo confirmarse.
  139. Lyall, L. M., Wyse, C. A., Graham, N., and colleagues (2018). "Association of disrupted circadian rhythmicity with mood disorders, subjective wellbeing, and cognitive function: a cross-sectional study of 91,105 participants." The Lancet Psychiatry, 5(6), 507-514. DOI 10.1016/S2215-0366(18)30139-1. VERIFIED. Does not support a large or causal effect: the effect sizes are small and are per one quintile reduction rather than per standard deviation, the design is explicitly cross sectional, and the outcomes are lifetime diagnoses while the accelerometry was collected years later, so much of the psychiatric history predates the sleep measurement.No sostiene un efecto grande ni causal: los tamaños de efecto son pequeños y por reducción de un quintil y no por desviación estándar, el diseño es explícitamente transversal, y los desenlaces son diagnósticos de por vida mientras que la acelerometría se recogió años después, de modo que gran parte del historial psiquiátrico precede a la medición del sueño.
  140. Walker, M. (2017). Why We Sleep: Unlocking the Power of Sleep and Dreams. New York: Scribner, 368 pages. Not peer reviewed, no digital identifier. VERIFIED as a popular science book. Supports nothing evidentiary, and published factual criticism of it exists and remains unresolved, including allegations that a central mortality claim contradicts the published curve, that a cancer risk claim is contradicted by a very large meta analysis, and that a figure was reproduced with a contradicting bar removed. The project's specification already labels it a popular science reference and not evidentiary, which is the correct call; removing it from a scientific grounding section entirely is the stronger position.No sostiene nada probatorio, y existen críticas fácticas publicadas y no resueltas, incluidas acusaciones de que una afirmación central sobre mortalidad contradice la curva publicada, de que una afirmación sobre riesgo de cáncer es contradicha por un metaanálisis muy grande, y de que una figura se reprodujo eliminando una barra que contradecía la narrativa. La especificación del proyecto ya lo etiqueta como referencia divulgativa y no probatoria, lo que es correcto; eliminarlo por completo de una sección de fundamentación científica es la posición más sólida.
  141. Onnela, J.-P., and Rauch, S. L. (2016). "Harnessing Smartphone-Based Digital Phenotyping to Enhance Behavioral and Mental Health." Neuropsychopharmacology, 41(7), 1691-1696. DOI 10.1038/npp.2016.7. VERIFIED. Supports the canonical definition of digital phenotyping and nothing more. It is an editorial perspective with no methods and no results, so it must be cited for terminology and framing only and never as evidence that passive sensing detects a condition.Sostiene la definición canónica del fenotipado digital y nada más. Es una perspectiva editorial sin métodos ni resultados, así que debe citarse solo por terminología y encuadre y jamás como prueba de que la captación pasiva detecta una condición.
  142. Insel, T. R. (2017). "Digital Phenotyping: Technology for a New Science of Behavior." JAMA, 318(13), 1215-1216. DOI 10.1001/jama.2017.11295. VERIFIED. Supports framing only: the article type is a viewpoint, meaning opinion and not validation. Usefully, the author writes himself that it is not clear whether smartphone measures will prove better at predicting clinical outcomes, and that on whether better measurement reduces morbidity there are currently no studies with which to answer the question. A conflict of interest is disclosed, since the author was at a digital phenotyping company.Sostiene solo el encuadre: el tipo de artículo es un punto de vista, es decir opinión y no validación. Útilmente, el propio autor escribe que no está claro si las mediciones con teléfono resultarán mejores para predecir desenlaces clínicos, y que sobre si una mejor medición reduce la morbilidad no hay actualmente estudios con los que responder. Se declara un conflicto de intereses, ya que el autor trabajaba en una empresa de fenotipado digital.

Prepared 2026-08-07 against commit 4dedd92. Every reference carries a verification marker; every element that could not be confirmed is stated as such rather than replaced with an invented identifier. Claims investigated and deliberately excluded as unverifiable are recorded too, because their absence is itself a finding: no peer reviewed case report naming a branded breathing method as the cause of a death, drowning, seizure or other serious harm exists, and circulating tallies of such harms are journalism and litigation filings rather than evidence; the instruction not to practise while driving has no peer reviewed or official body source and should be presented as a common sense extension of the documented dizziness risk rather than as a cited guideline; and the frequently repeated claim that a 1939 conference first adopted a standard reference pitch could not be confirmed from a primary document, so the anachronism argument in section 11.2 rests on the standard and the pitch history instead.

Preparado el 2026-08-07 sobre el commit 4dedd92. Cada referencia lleva un marcador de verificación; todo elemento que no pudo confirmarse se declara como tal en lugar de sustituirse por un identificador inventado. También se registran las afirmaciones investigadas y deliberadamente excluidas como no verificables, porque su ausencia es en sí un hallazgo: no existe ningún informe de caso revisado por pares que nombre un método respiratorio de marca como causa de una muerte, un ahogamiento, una convulsión u otro daño grave, y los recuentos de tales daños que circulan son periodismo y demandas judiciales y no evidencia; la instrucción de no practicar mientras se conduce no tiene fuente revisada por pares ni de organismo oficial y debe presentarse como una extensión de sentido común del riesgo documentado de mareo y no como una directriz citada; y la afirmación repetida de que una conferencia de 1939 adoptó por primera vez un tono de referencia estándar no pudo confirmarse desde un documento primario, así que el argumento de anacronismo de la sección 11.2 se apoya en la norma y en la historia del tono.