`morfo.md` §Step 2 — la guía de AUTORÍA, donde el autor decide — documentaba
sólo `'public'` y `'virtual'` y omitía `'private'`. La sección de referencia sí
tenía los tres, pero nadie declara partes leyendo la referencia.
El criterio que queda escrito: **lo que hace pública a una parte es que el
consumidor la decida, con independencia de la sintaxis**. La composición
(`<Dialog.Trigger>`) es la vía habitual, no la única: un primitivo de API plana
gobierna sus partes por props y snippets — `<Badge dot>` decide la parte Dot,
`icon` la parte Icon. Ambas son públicas. `'private'` queda para lo que nada de
lo que escribe el consumidor alcanza (el Track de `Spinner`, el Sentinel de
`Sticky`).
Importa el matiz porque la primera versión de esta nota decía lo contrario —
que el test era mecánico y que sin `<Componente.Parte>` la parte no es pública
— y eso habría reclasificado mal a Badge y a todo primitivo de API plana.
## Handoff: tres hallazgos retirados
Los tres salieron de heurísticas de una sola vía dadas por hechas sin abrir el
código. Es el mismo fallo que la auditoría denuncia en los guards, cometido al
redactar el informe:
- **D-3 `AgentTimersPort.once`** — el puerto SÍ está satisfecho:
`defineActiveAgent()` adapta `core.timers.schedule` a `once` en la raíz de
composición, que es el patrón previsto. No había nada roto.
- **«5 derivas de scope»** — `avatar-group`, `path-trace` y `rotate-align` están
implementados; el framework co-loca sub-componentes dentro del directorio del
padre y la heurística asumía «directorio == kebab».
- **«29 morfos con `kind:'public'` irreal»** — medía si existe
`<Componente.Parte>` e ignoraba props y snippets. Sin recuento fiable hasta
cruzar las tres vías.
Añadido: `npm run lint` nunca ha pasado. Separando el ruido CRLF del checkout
Windows (`--end-of-line auto`) quedan 1544 ficheros con deriva real de
contenido. Es decisión del usuario porque el arreglo toca todo el repo de golpe.
Y la lección de método: **un analizador que no puede resolver algo tiene que
decir «no verificado», no emitir un hallazgo.**
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>