Implement storage layer for MVP-1 Personal Tracker CLI
Add storage layer with FileStorage, MarkdownReader, and MarkdownWriter classes. Add data models (Project, Session, Note, Change).
This commit is contained in:
42
tracker/services/summary_service.py
Normal file
42
tracker/services/summary_service.py
Normal file
@@ -0,0 +1,42 @@
|
||||
"""Summary service for heuristic summary generation."""
|
||||
|
||||
from ..models import Session
|
||||
from .note_service import consolidate_notes
|
||||
|
||||
|
||||
def generate_summary(session: Session) -> str:
|
||||
"""
|
||||
Generate a heuristic summary from the session.
|
||||
Uses consolidate_notes to extract work_done, decisions, blockers.
|
||||
"""
|
||||
# Consolidate raw notes into categorized sections
|
||||
consolidated = consolidate_notes(session.raw_notes)
|
||||
|
||||
lines = []
|
||||
|
||||
# Work done section
|
||||
if consolidated["work_done"]:
|
||||
lines.append("Trabajo realizado:")
|
||||
for item in consolidated["work_done"]:
|
||||
lines.append(f" - {item}")
|
||||
lines.append("")
|
||||
|
||||
# Decisions section
|
||||
if consolidated["decisions"]:
|
||||
lines.append("Decisiones:")
|
||||
for item in consolidated["decisions"]:
|
||||
lines.append(f" - {item}")
|
||||
lines.append("")
|
||||
|
||||
# Blockers section
|
||||
if consolidated["blockers"]:
|
||||
lines.append("Bloqueos:")
|
||||
for item in consolidated["blockers"]:
|
||||
lines.append(f" - {item}")
|
||||
lines.append("")
|
||||
|
||||
# If no content, provide a minimal summary
|
||||
if not lines:
|
||||
return f"Session de {session.duration_minutes} minutos sin progreso registrado."
|
||||
|
||||
return "\n".join(lines)
|
||||
Reference in New Issue
Block a user