"""Heuristics service for suggestions based on rules.""" from datetime import datetime from ..models import Session, Project def suggest_next_steps(session: Session, project: Project) -> list[str]: """ Generate suggestions based on session state and project context. Rules: - si hay blockers abiertos, sugerir "Destrabar: [bloqueos]" - si hay changes sin references, sugerir "Validar cambios recientes" - si work_done está vacío y session > 30 min, sugerir "Revisar progreso del objetivo" - si no hay next_steps definidos, sugerir "Definir próximos pasos" """ suggestions = [] # Rule: blockers open if session.blockers: for blocker in session.blockers: suggestions.append(f"Destrabar: {blocker}") # Rule: changes without references changes_without_refs = [] for change in session.changes: # Simple heuristic: if change doesn't reference anything specific if change and not any(ref in change.lower() for ref in ["#", "commit", "pr", "issue"]): changes_without_refs.append(change) if changes_without_refs: suggestions.append("Validar cambios recientes") # Rule: work_done empty and session > 30 minutes if not session.work_done: duration = session.duration_minutes if duration == 0 and session.ended_at and session.started_at: duration = int((session.ended_at - session.started_at).total_seconds() / 60) if duration > 30: suggestions.append("Revisar progreso del objetivo") # Rule: no next_steps defined if not session.next_steps: suggestions.append("Definir próximos pasos") return suggestions