# Reference: pm-product-advisor

## Mini App IDs (customfield_10071)

Requerido en todas las cards de tipo **Design** en el proyecto SQEG.
Pasar como array de objetos: `[{"id": "10122"}]` (puede ser más de uno si la feature afecta múltiples mini apps).

| Mini App | ID |
|----------|----|
| Time Off | 10122 |
| Time Tracking | 10252 |
| Shifts | _(verificar con `getJiraIssueTypeMetaWithFields` en el MCP de Jira, proyecto SQEG, tipo Design)_ |
| Payroll | _(verificar)_ |
| Org Chart | _(verificar)_ |
| Documents | _(verificar)_ |
| Surveys | _(verificar)_ |
| Goals | _(verificar)_ |

> **Cómo obtener IDs actualizados**: usar el MCP de Jira (`getJiraIssueTypeMetaWithFields` con `projectKey` SQEG e `issueTypeName` Design) y localizar `customfield_10071` y sus opciones permitidas.

---

## Plantilla: Design Task

```
[info]
**Descripción general:**
[resumen del diseño y el problema que aborda]

**Detalle de la funcionalidad:**
[qué se va a diseñar — flujos, pantallas, estados]

**Plataformas que afecta:** Web / App / Admin _(marcar las que apliquen)_

**Usuarios involucrados:**
[quiénes usan o son impactados por este diseño]

**Base de diseño actual:**
[URL de Figma si es iteración, o "diseño desde cero"]
[/info]

[note]
**Requerimientos en detalle:**
- Requerimiento 1 (flujo principal)
- Requerimiento 2 (estado vacío / sin resultados)
- Requerimiento 3 (error / edge case)
- ...

**Edge cases y flujos alternativos:**
- [edge case 1]: [comportamiento esperado]
- [edge case 2]: [comportamiento esperado]
[/note]
```

---

## Plantilla: User Story

```
[info]
Como [tipo de usuario],
quiero [funcionalidad],
para [beneficio / objetivo].
[/info]

[note]
**Criterios de aceptación:**
- [ ] Criterio 1 (happy path)
- [ ] Criterio 2 (edge case o flujo alternativo)
- [ ] Criterio 3 (error handling)

**Notas:**
- [contexto adicional, dependencias, restricciones]
[/note]
```

---

## Plantilla: Épica

```
[info]
**Objetivo:**
[qué problema resuelve esta épica y para quién]

**Alcance:**
[qué flujos y funcionalidades incluye]

**Fuera de alcance (v1):**
[qué se deja para después]
[/info]

[note]
**Criterios de cierre:**
- [ ] Criterio 1
- [ ] Criterio 2
[/note]
```

---

## Plantilla: Card de Métricas (Amplitude)

Tipo: **Story** o **Task** en SQEG.
Título sugerido: `[Metrics] Nombre de la funcionalidad`

```
[info]
**Funcionalidad:** [nombre]
**Sprint / versión:** [v1 / sprint N]

**Por qué estas métricas:**
[explicación global de qué queremos aprender o medir con esta funcionalidad]

**Contexto:**
[en qué parte del producto vive esta funcionalidad, qué usuarios la usan, con qué frecuencia esperamos verla]
[/info]

[note]
**Eventos a implementar:**

---

**Event:** `nombre_del_evento`
- **Trigger:** [acción del usuario o momento del flujo que lo dispara]
- **Propiedades:** `{ propiedad_1: tipo, propiedad_2: tipo, ... }`
- **Por qué:** [qué pregunta de negocio responde]
- **Contexto:** [pantalla, estado de la app, flujo donde ocurre]

---

**Event:** `nombre_del_evento_2`
- **Trigger:** [...]
- **Propiedades:** `{ ... }`
- **Por qué:** [...]
- **Contexto:** [...]

_(repetir por cada evento)_
[/note]
```

---

## Convenciones de nomenclatura Amplitude

- **Nombres de evento en Humand:** convención habitual **`SCREAMING_SNAKE_CASE`** (todo mayúsculas con guiones bajos), p. ej. `TIME_TRACKING_CLOCK_STARTED`. Los **ejemplos** de la sección siguiente usan este estilo para alinearlos con el catálogo típico en Amplitude.
- **Otras convenciones** solo si el squad ya las definió y son consistentes en el proyecto: `snake_case` (`time_off_request_submitted`) o **Title Case**; no mezclar estilos sin criterio explícito.
- **Propiedades** de los eventos: preferir **`snake_case`** (`user_id`, `plan_type`).
- Propiedades comunes a incluir cuando aplique:
  - `user_id`, `company_id`
  - `plan_type` (free / pro / enterprise)
  - `feature` (nombre de la mini app)
  - `source` (dónde fue iniciada la acción: sidebar, notification, etc.)

---

## Template de input y Granola

Podés copiar [templates/input-product-advisor.md](../templates/input-product-advisor.md) para no olvidar ninguna fuente.

### Prompts útiles (Granola MCP)

- "Requerimientos, pain points y decisiones de [nombre reunión / feature]"
- "Qué se acordó y qué quedó pendiente en la sesión de discovery de [tema]"
- "Action items y preguntas abiertas de [reunión]"

### URLs: Notion, FigJam, Figma

- **Notion**: `notion-fetch` con la URL de la página (o el ID).
- **FigJam**: `figma.com/board/:fileKey/...?node-id=X-Y` → fileKey, nodeId = `X:Y`.
- **Figma design**: `figma.com/design/:fileKey/...?node-id=X-Y` → fileKey, nodeId = `X:Y` (reemplazar guión por dos puntos en nodeId para `get_design_context`).

### Checklist discovery (rápido)

- Problema: qué se resuelve, para quién, por qué ahora
- Solución: alcance, flujos principales, restricciones
- Implementación: secuencia, dependencias, criterios de éxito
- Priorización v1: must-have vs después; el usuario decide qué va en el output

### Ejemplo: varios eventos en una misma card (Jira)

```
Eventos Amplitude – [Nombre funcionalidad]

Por qué estas métricas: [texto]
Contexto: [texto]

---
¿Cuántos clock-in / clock-out se hacen en un día?
Event: TIME_TRACKING_CLOCK_STARTED
Trigger: Se presiona "Iniciar reloj" y se genera registro de entrada
Propiedades: type (started/finished), source (app), userId
Por qué: medir adopción del reloj y volumen de fichajes
Contexto: [breve]

---
¿Cantidad de veces que se abre la feature del reloj?
Event: TIME_TRACKING_CLOCK_OPENED
Trigger: Se abre el modal del reloj
Propiedades: source (app)
Por qué: [pregunta de producto]
Contexto: [breve]

---
¿Cantidad de veces que se abre daily details?
Event: TIME_TRACKING_DAILY_DETAILS_OPENED
Trigger: Se presiona "Ver más información" dentro del reloj
Propiedades: userId, source
Por qué: [pregunta de producto]
Contexto: [breve]
```

### Mapeo funcionalidad → Mini App (referencia rápida)

- Time tracking / Bolsa de horas: `[{"id": "10252"}, {"id": "10122"}]` (Time Tracking, Time Off)
- Otras áreas: ver metadata del tipo Design en SQEG vía MCP (`getJiraIssueTypeMetaWithFields`).

### Formato resumen exportable (reanudar sesión)

```markdown
## Resumen Product Advisor – [feature]

### Problema
### Solución propuesta
### Priorización v1 (qué va en esta versión)
### Edge cases y flujos alternativos
### Métricas propuestas (eventos Amplitude)
### Pendientes
### Fuentes usadas
- Notion: [URLs]
- Granola: [reunión/query]
- Figma: [URLs]
```
