Skip to content

feat(domain): unlock rule schema, describer, evaluator #27

@tomiloki

Description

@tomiloki

Context

Phase 3 del re-design. Núcleo del nuevo modelo de recompensas: 3 tipos de regla, descripción humana en español, evaluación pura.

Spec & Plan

  • Spec: `docs/superpowers/specs/2026-05-08-habitquest-reimagination-design.md` (sección 3)
  • Plan: `docs/superpowers/plans/2026-05-08-habitquest-reimagination.md` (Phase 3)

Deliverables

  • `lib/ai/reward-rules.ts` con `UnlockRule` (Zod), `describeRule()`, `evaluateReward()`, `REWARD_CATEGORIES`
  • `tests/reward-rules.test.ts` con tests unit puros (sin DB)

Tipos de regla soportados

  1. `min_completions` — "Hacé N acciones positivas hoy"
  2. `category_min` — "Hacé al menos N acciones de <categoría> hoy"
  3. `plan_complete` — "Completá todo tu menú de hoy"

Acceptance

  • 17+ tests unit verdes
  • Singular/plural correcto en español
  • `evaluateReward` con `todayRedemption` siempre devuelve `enjoyed` (incluso si la regla está cumplida)
  • `plan_complete` ignora items con `status='replaced'`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions