Hito activo: Junio
Última sincronización: 2026-06-25 (auto via GitHub Action — no editar a mano). Deadline: 2026-07-01 · 6 días restantes Repo:
gala1234/thefittclub
Estado del hito
████████████████░░░░ 82% (385/467.5 pts)
| Métrica | Valor |
|---|---|
| Tickets totales | 127 (110 done · 0 en vuelo · 17 pending) |
| Puntos restantes | 82.5 pts |
| ETA (early) | 2026-11-04 (19 semanas) |
| ETA (late, +50%) | 2027-01-09 |
| Fuente velocity | real (pts/hour) · 0.219 pts/h · 4.58 h/pt (n=160) · 20h working/week |
| Velocity real | 0.219 pts/h · 4.58 h/pt (n=160) |
| Velocity calendar | 108.13 pts/week (n=128, last 4 wks) |
| ¿Llega a deadline? | ⚠️ En riesgo (ETA early 126 días después de deadline) |
Carga de trabajo
| Effort | Tickets | Pts | Detalle |
|---|---|---|---|
| XS | 1 | 0.5 pts | T298 |
| S | 3 | 3 pts | T300 · T225 · T271 |
| M | 5 | 15 pts | T78 · T200 · T222 · T274 · T276 |
| L | 8 | 64 pts | T52 · T65 · T70 · T71 · T239 · T275 · T277 · T319 |
En vuelo ahora
(ningún ticket de Junio en Active ni QA)
Listos para activar (sin bloqueos)
Estos tickets no tienen dependencias pendientes — pueden pasar a Active con un “go”:
| # | Ticket | Título | Effort | Model | Domain |
|---|---|---|---|---|---|
| 7 | T65 | Zenler Content Pipeline: Ritual Core Legacy → MVP | L | mixed | content-pipeline |
| 18 | T70 | Pagina /auto-test (UI + logica) | L | mixed | other |
| 300 | T300 | Archive all Zenler data before account access expires (~1 month) | S | sonnet | content-migration |
| — | T200 | Safe-start gate: no active program before postpartum-readiness floor | M | opus | onboarding |
| — | T222 | Rebrand: module & capsule detail | M | mixed | design |
| — | T225 | Fix: password show/hide toggle dead until field interaction under iOS autofill | S | sonnet | auth |
| — | T239 | BO-configurable onboarding step groups (data-driven wizard, per product) | L | mixed | onboarding |
| — | T271 | fix: completed prod_ritual_core_legacy sessions don’t appear in “Your library” | S | sonnet | other |
| — | T274 | Account credential: role/tier badge + member number | M | sonnet | account |
| — | T275 | Account privacy section: GDPR export + delete logic | L | opus | account |
| — | T276 | Account physical: wire the stimulus readout to the real derived plan | M | sonnet | account |
| — | T298 | Dashboard welcome row: mobile edge/border-radius clipping of kicker + switcher | XS | sonnet | dashboard |
| — | T319 | Profile ambassador programme (referral code + discount + points ledger + waitlist) | L | mixed | account |
Grafo de dependencias
Tickets con dependencias explícitas (de la sección “Blockers / dependencies” de cada spec):
- T52 (PWA contract + service worker strategy + Lighthouse gate) → depende de: T38 ⏳
- T71 (
/auto-test/resultado(3 variantes dinamicas)) → depende de: T70 ⏳ - T78 (Analytics tracking (lead magnets)) → depende de: T70 ⏳
- T277 (Wire real billing/entitlements to the profile Subscription UI) → depende de: T20 ⏳, T37 ⏳
Cuellos de botella
Tickets que bloquean a otros (ordenados por impacto):
- T70 (Pagina
/auto-test(UI + logica)) — bloquea 2 ticket(s): T71, T78 - T38 (Branded error pages: routing + HTTP layer (404, 500, offline)) — bloquea 1 ticket(s): T52
- T20 (Stripe checkout + custom page + webhooks) — bloquea 1 ticket(s): T277
- T37 (Member account self-service (cancel, password, data export, delete)) — bloquea 1 ticket(s): T277
Próximas 4 semanas
Tickets de Junio proyectados por semana (basado en velocity + cola de prioridad):
| Semana | Tickets Junio | Pts | Otros | Riesgo |
|---|---|---|---|---|
| Wk1 (2026-06-22) | T52 | 8 | — | ✓ |
| Wk2 (2026-06-29) | T65 | 8 | — | ✓ |
| Wk3 (2026-07-06) | T70 | 8 | — | ✓ |
| Wk4 (2026-07-13) | T71 | 8 | — | ✓ |
Backlog completo Junio
| # | Ticket | Título | Brief | Effort | Model | Domain | Deps |
|---|---|---|---|---|---|---|---|
| 5 | T52 | PWA contract + service worker strategy + Lighthouse gate | Lock the complete PWA contract that .cursorrules §13 mandates but no ticket ha… | L | mixed | other | T38 |
| 7 | T65 | Zenler Content Pipeline: Ritual Core Legacy → MVP | Zenler Content Pipeline: Ritual Core Legacy → MVP | L | mixed | content-pipeline | — |
| 18 | T70 | Pagina /auto-test (UI + logica) | Build the public auto-test page: 6 questions with radio button answers, score ca… | L | mixed | other | — |
| 19 | T71 | /auto-test/resultado (3 variantes dinamicas) | Build the auto-test result page with 3 dynamic variants mapped to Ritual Core ph… | L | mixed | other | T70 |
| 26 | T78 | Analytics tracking (lead magnets) | Implement event tracking for all lead magnet interactions: form submissions, PDF… | M | sonnet | other | T70 |
| 300 | T300 | Archive all Zenler data before account access expires (~1 month) | Extract and archive the member data that lives only in Zenler (assignment photos… | S | sonnet | content-migration | — |
| — | T200 | Safe-start gate: no active program before postpartum-readiness floor | Stop a woman from starting the active program until she is past a postpartum-rea… | M | opus | onboarding | — |
| — | T222 | Rebrand: module & capsule detail | Aterrizar el diseño Main Style del detalle de módulo comprado y sus cápsulas (sh… | M | mixed | design | — |
| — | T225 | Fix: password show/hide toggle dead until field interaction under iOS autofill | El botón mostrar/ocultar contraseña no responde con credenciales autorellenadas … | S | sonnet | auth | — |
| — | T239 | BO-configurable onboarding step groups (data-driven wizard, per product) | Hacer la agrupación por pasos del wizard de onboarding data-driven y configurabl… | L | mixed | onboarding | — |
| — | T271 | fix: completed prod_ritual_core_legacy sessions don’t appear in “Your library” | Completed prod_ritual_core_legacy sessions don’t appear in “Your library” (Ses… | S | sonnet | other | — |
| — | T274 | Account credential: role/tier badge + member number | Give the account credential its full data: a gradient role/tier badge (FUNDADORA… | M | sonnet | account | — |
| — | T275 | Account privacy section: GDPR export + delete logic | Give the account “Privacidad” section real behavior. T103 landed it as a coming-… | L | opus | account | — |
| — | T276 | Account physical: wire the stimulus readout to the real derived plan | Replace the MOCK stimulus readout on the account “Datos físicos” section (days/w… | M | sonnet | account | — |
| — | T277 | Wire real billing/entitlements to the profile Subscription UI | Replace the mock plan-selector/invoices/purchases/perk in the profile Subscripti… | L | mixed | billing | T20, T37 |
| — | T298 | Dashboard welcome row: mobile edge/border-radius clipping of kicker + switcher | On mobile the dashboard welcome row (BentoWelcomeRow) renders the kicker date … | XS | sonnet | dashboard | — |
| — | T319 | Profile ambassador programme (referral code + discount + points ledger + waitlist) | Give the ambassador programme a real backend so its already-shipped UI stops bei… | L | mixed | account | — |
Completados en Junio
| Ticket | Título | Effort | Cerrado |
|---|---|---|---|
| T35 | Cookie consent banner + legal-surface completion | M | 2026-05-29T23:08:35Z |
| T40 | Auth hardening: rate limiting + health-data consent | L | 2026-05-30 |
| T41 | Rebrand system core (DESIGN.md v5, foundation for T97–T104) | L | 2026-05-22T16:45:32Z |
| T42 | AI code review automation (PR-gate via Anthropic API) | M | 2026-05-19T13:05:27Z |
| T43 | AI-Agent Security Checklist + Endpoint Audit | M | 2026-05-21T09:15:00Z |
| T44 | LLM input/output hardening (provider-aware, Workers AI primary) | L | 2026-05-22T23:00:00Z |
| T45 | Dependency supply-chain policy (lockfile + Dependabot + action pinning + SBOM) | M | 2026-05-19T23:06:58Z |
| T47 | Repo layout convention + dep-cruiser enforcement | M | 2026-05-20T18:02:47Z |
| T48 | Seeds consolidation (first layout migration) | M | 2026-05-20T21:25:08Z |
| T49 | EU compliance umbrella (DPIA + DPAs + retention + breach SOP + VAT + cross-system GDPR cascade) | L | 2026-06-24T05:12:29Z |
| T50 | Accessibility WCAG 2.1 AA baseline + CI enforcement | M | 2026-05-20T22:45:03Z |
| T51 | Admin BO audit log (transversal) | L | 2026-05-29T17:08:11Z |
| T55 | Analytics tool selection + GDPR-clean wiring | M | 2026-06-06T13:33:30Z |
| T57 | Per-product retention design (Rituales / Módulos / Cápsulas) | M | 2026-06-24T11:09:27Z |
| T60 | Cook thefittclub-eu-compliance-advisor skill via Skill Creator | S | 2026-05-29T14:51:09Z |
| T61 | Pre-MVP lead magnet (decision + production) | M | ? |
| T67 | Skills as pre-commit / CI deterministic gate | S | 2026-05-19 |
| T68 | Setup Loops + migracion SendGrid | S | 2026-05-28 |
| T69 | DB schema leads + bilingual guides + migrations | M | 2026-06-07T00:11:37Z |
| T72 | /guias + /guias/[slug] (listado + detalle + form descarga) | L | 2026-06-21T04:45:08Z |
| T73 | Ritual Core waitlist (Home section + founding members) | M | 2026-06-24T12:26:21Z |
| T74 | Worker API /api/leads (POST) | M | ? |
| T75 | Loops sync (webhooks + journeys) | L | 2026-05-28 |
| T76 | Email templates Loops (3x5 = 15 emails, ES/EN) | L | 2026-05-28 |
| T77 | PDFs a R2 + signed URLs | S | ? |
| T80 | Test architecture: 4-layer pyramid + tests/e2e/ restructure + ADR | M | 2026-05-19T07:44:39Z |
| T81 | Observability service unit tests + T27 QA theater | S | 2026-05-19T08:07:45Z |
| T84 | Adapt to react-router 7.15 + @types/react 19.2 strictness | S | 2026-05-20T08:36:47Z |
| T85 | i18n stack major upgrade (i18next 24→26 + react-i18next 15→17 + http-backend 3→4) | M | 2026-05-22T23:38:54Z |
| T86 | Vite 6 → 8 upgrade | M | 2026-05-27T09:20:15Z |
| T88 | Board + spec blocker auto-cleanup on ticket close | S | 2026-05-20T10:15:17Z |
| T89 | lint-board-blockers regex false positives on dates and filename slugs | XS | 2026-05-20T13:22:28Z |
| T90 | Pre-commit hooksPath auto-wire + board lint coverage | XS | 2026-05-20T15:54:04Z |
| T91 | PR subscription poll-back protocol | XS | 2026-05-20T17:13:15Z |
| T92 | Resolve EvolutionChartsPanel ↔ ui/index.ts circular import | XS | 2026-05-20T20:16:22Z |
| T94 | Breakpoints: Tailwind default contract | S | 2026-05-21T13:51:54Z |
| T97 | Rebrand: auth surfaces (signup / login / reset-password) | L | 2026-05-31 |
| T98 | Rebrand: global navigation + footer | M | 2026-05-30T12:53:53Z |
| T99 | Rebrand: dashboard “Mi espacio” Phase M (umbrella — close handoff gaps) | M | 2026-06-16T20:43:53Z |
| T100 | Rebrand: player session shell | L | 2026-06-19T17:25:00+00:00 |
| T101 | Rebrand: onboarding flow | M | 2026-06-14T00:47:48Z |
| T102 | Rebrand: landing Hito 1 (lead-magnet funnel homepage) | M | 2026-06-13T09:41:35Z |
| T103 | Rebrand: account / profile | S | 2026-06-20T15:29:12Z |
| T110 | Consolidar 4 audit jobs en uno (palanca #3 cost mitigation) | M | 2026-05-22 |
| T116 | Backfill dependency-justification.md rows missed by T85 (+ stale security-baseline.md note) | XS | 2026-05-23T05:23:28Z |
| T119 | CI test gate: vitest unit + component as required check + anti-trivial-test defenses | S | 2026-05-23T18:58:26Z |
| T121 | Skill .usage-log.jsonl persistence in remote-only mode | XS | 2026-05-23T18:58:26Z |
| T136 | Canonical brand pages for LLM citation: /metodo + /faq | M | 2026-06-16T10:12:11+00:00 |
| T152 | De-medicalise UI copy: clinical framing → body-awareness language | XS | 2026-05-29T19:48:49Z |
| T153 | Resend email infrastructure (unified) | L | 2026-05-28 |
| T172 | Bilingual media + subtitles schema | L | 2026-06-01T18:46:07Z |
| T173 | i18n schema consistency cleanup | M | 2026-06-01T16:30:55Z |
| T174 | i18n storage-pattern gate (enforce ADR-0010 mechanically) | M | 2026-06-01T22:24:17Z |
| T175 | Design SSOT: single canonical source + versioning policy | M | 2026-06-10T22:50:40Z |
| T176 | Component reuse contract + enforcement gate | M | 2026-05-31T18:25:38Z |
| T177 | Forms SSOT: primitive library + migrate hand-rolled forms | L | 2026-05-31T21:25:27Z |
| T178 | Buttons SSOT: route all CTAs through <Button> | L | 2026-06-01T10:07:35Z |
| T179 | BentoCard consolidation: 6 files → 1 variant-driven primitive | M | 2026-06-18T17:03:24Z |
| T180 | Modal consolidation: composable bodies over one Modal base | M | 2026-06-24T13:36:00Z |
| T183 | BO: per-locale media upload (es/en) for catalog content | L | 2026-06-01T20:02:49Z |
| T184 | Retire legacy shared media columns + dummy per-locale media seed | M | 2026-06-01T21:26:33Z |
| T190 | Reduce Cloudflare preview request consumption (avoid free-tier daily cap) | XS | 2026-06-03T09:54:34Z |
| T193 | Zenler legacy membership migration (users + access + progress) | M | 2026-06-05T12:08:08Z |
| T194 | Legacy payment transactions ledger (preserve full Zenler purchase history) | M | 2026-06-05T17:21:21Z |
| T195 | Formalise payment_transactions retention + erasure in security-baseline.md §4 | XS | 2026-06-05T18:55:27Z |
| T197 | Onboarding consent coherence + skip-to-generic escape | L | 2026-06-25T16:42:17Z |
| T201 | fix: legacy seed generators emit BEGIN TRANSACTION (D1 rejects it) | XS | 2026-06-05T18:22:56Z |
| T202 | Back Office payments ledger view (read-only) | S | 2026-06-05T18:45:00Z |
| T203 | BO payments: membership filter + payment detail view | M | 2026-06-05T23:21:38Z |
| T204 | Ritual Core Legacy: product definition + cohort eligibility + entitlement seed | M | 2026-06-06T08:22:27Z |
| T205 | Retention: computed re-engagement (pause / lapse) | M | 2026-06-06T11:41:42Z |
| T210 | Footer + nav “Próximamente” state + resolve unlinked public pages (absorbs T165) | M | 2026-06-06T14:35:45Z |
| T211 | Seed: Ritual Core Legacy phases (21 sessions/phase + 2→3 & 3→4 transitions) | M | 2026-06-06T15:41:00Z |
| T214 | Legacy position backfill (currentPhase + mainSequenceDay from real Zenler progress) | M | 2026-06-06T18:55:17Z |
| T215 | Archive Zenler data before losing access | M | 2026-06-07 |
| T218 | Back Office: page media assets library (marketing images + videos) | L | 2026-06-12T06:03:16Z |
| T219 | Front-end page-asset consumption layer (slot registry + hook + fallback) | M | 2026-06-12T19:07:40Z |
| T220 | Rebrand: biblioteca (member catalog) | L | ? |
| T221 | Rebrand: fase actual (current-phase detail surface) | M | 2026-06-16T15:45:04Z |
| T223 | Drift-audit: auth surfaces (T97) vs Main Style | S | 2026-06-11T08:25:21Z |
| T224 | Drift-audit: global nav + footer (T98) vs Main Style | S | 2026-06-11T15:08:24Z |
| T226 | Nav state matrix + scroll-overlap aterrizaje (Main Style) | M | 2026-06-11T17:09:34Z |
| T230 | Fix: home loader 500s when page-asset resolution fails (page_media_assets missing in prod D1) | XS | 2026-06-13T10:17:44Z |
| T231 | Dashboard hero: session-meta block (stats + materials) | S | 2026-06-13T17:44:59Z |
| T232 | Dashboard collection data projection (DAL for the vitrina) | M | 2026-06-13T18:12:50Z |
| T233 | Dashboard “Tu Colección” vitrina + StateVacio convergence | L | 2026-06-13T19:59:13Z |
| T234 | Dashboard progress card → FaseActualCard | M | 2026-06-14T14:24:49Z |
| T235 | Capsule “Reto” (challenge) product concept: data + backoffice | M | 2026-06-13T20:59:38Z |
| T236 | Collection cards: per-addon urgency countdown | S | 2026-06-13T22:41:26Z |
| T237 | Brand doctrine: motivation vs anti-gamification (rewrite the rule) | S | 2026-06-13T17:44:59Z |
| T240 | Playwright E2E infra fix (auto-install Chromium in ephemeral containers) | XS | ? |
| T243 | Back Office media: upload reliability + CF resource deletion + subtitle validation | M | 2026-06-15T07:46:13+00:00 |
| T244 | Scalable multi-surface page-asset slots (extends T219) | M | 2026-06-15T15:29:40Z |
| T254 | Back Office: pick from existing Cloudflare Stream / Images library (no re-upload) | M | 2026-06-15T12:14:47Z |
| T256 | BO media library + landing media rendering (CF Images variants, editor preview, founder video, list filter/sort/paginate) | XL | 2026-06-15T18:40:31Z |
| T258 | Landing card media (BO-managed) + hero image-or-video | M | 2026-06-15T20:15:51Z |
| T261 | Rebrand: El Método (/metodo · /method) | M | 2026-06-19T21:49:13Z |
| T262 | Rebrand: FAQ (/faq) | M | 2026-06-19T23:43:25Z |
| T263 | Rebrand: Soporte (/soporte · /support) | M | 2026-06-20T08:28:22Z |
| T264 | Rebrand: dashboard StateVacio / StateOferta — land the HERO “Estados del Dashboard” design | L | 2026-06-16T19:13:17Z |
| T265 | Fix: dashboard needs_onboarding classifier disagrees with the onboarding route (CTA bounces to dashboard) | S | 2026-06-16T20:38:34Z |
| T266 | Physical-profile delivery model: decouple delivery_type from postpartum recency | L | 2026-06-19T06:37:45Z |
| T278 | Profile avatar upload (member photo, R2-backed) | S | 2026-06-25 |
| T283 | Wire lead-magnet email delivery (/api/leads → Resend) | S | ? |
| T287 | fix: guide PDF upload presign returns HTML (UI-route action) → move to resource route | S | ? |
| T289 | fix: R2 signing hard-500s authed surfaces (missing creds / sign failure) → degrade gracefully | S | 2026-06-21T17:40:00Z |
| T291 | fix: Fase 1 techniques broken in the app (BO works) — library queries wrong product for legacy users; player technique video not rendering + desktop overlap | M | 2026-06-23T20:15:28Z |
| T295 | Unified TechniqueViewer redesign (player + biblioteca) + acquisition ceremony | L | ? |
| T297 | Technique acquisition loop polish: immersive library viewer + “new technique” library-nav indicator | M | ? |
| T317 | AEPD pre-launch: Privacy Policy (Art. 13) + RAT + go-live checklist | M | 2026-06-25T16:42:17Z |
Auto-generado por scripts/maintenance/generate-vault-dashboard.mjs. Última corrida: 2026-06-25.