Transform academic course assignment PDFs into structured, actionable markdown checklists with dates, unique IDs, and custom tags. Asks when the user will start, assigns tasks only to weekdays (Monday-Friday), respects weekends automatically, and calculates forum deadlines 3 days before due date. Use this skill when the user uploads academic PDFs or asks to create a task plan from course assignments.
Transform academic course assignment PDFs into structured, actionable markdown checklists with dates, unique IDs, and custom tags. Assigns tasks to weekdays only, respecting real student schedules.
When a PDF is uploaded or referenced:
read_pdf_content toolAsk the user TWO questions in sequence:
He analizado tu guía. Información encontrada:
- **Curso:** [Course Name] ([Code])
- **Tarea:** [Assignment Title]
- **Fecha oficial de apertura:** [Official Start Date]
- **Fecha de entrega:** [Due Date]
- **Valor:** [Points] puntos
¿Cuándo vas a iniciar esta tarea?
(Puedes usar la fecha oficial o indicar otra fecha si prefieres empezar después)
Formato: YYYY-MM-DD o "mañana" o "próximo lunes", etc.
Wait for user response. Parse the date they provide.
Perfecto, iniciarás el [parsed start date].
¿Qué tags quieres agregar a cada tarea?
Ejemplo: #estudio #cibercultura #universidad
Por favor proporciona los tags separados por espacios:
Wait for user response before proceeding.
Based on the extracted dates and user input:
CRITICAL RULE: Avoid weekends for regular tasks
When assigning dates to tasks:
✅ DO assign to weekdays:
❌ DO NOT assign to weekends (Saturday/Sunday) EXCEPT:
Date Assignment Algorithm:
# Pseudo-code for date assignment
current_date = user_start_date
for task in tasks:
if task.is_critical_deadline: # Forum or final submission
task.date = task.fixed_deadline_date # Use exact date even if weekend
else:
# Assign to next available weekday
while current_date is weekend:
current_date = skip_to_next_monday()
task.date = current_date
current_date = next_day(current_date)
Weekend Handling Examples:
❌ WRONG:
- [ ] Leer artículo... 📅 2025-11-02 (Saturday)
✅ CORRECT:
- [ ] Leer artículo... 📅 2025-11-04 (Monday)
✅ EXCEPTION - Critical deadline on weekend:
- [ ] Publicar en foro (FECHA LÍMITE) 📅 2025-11-23 (Saturday) ⚠️
✅ EXCEPTION - Final submission on weekend:
- [ ] Subir documento Word (ENTREGA FINAL) 📅 2025-11-24 (Sunday) ⚠️
Create tasks with moderate granularity:
Reading/Research Phase:
Creation Phase: For each deliverable, create 3-5 tasks:
Forum Participation:
Final Documentation:
# ✅ CHECKLIST [ASSIGNMENT NAME]
**Periodo:** [user start date] - [due date]
**Valor:** [points] puntos
**⚠️ Fecha límite foro:** [3 days before due date] [⚠️ add if weekend]
**⚠️ Fecha de entrega:** [due date] [⚠️ add if weekend]
---
## 📚 PHASE 1: [Phase Name] ([date range - weekdays only])
### 📖 [Section Name]
- [ ] [Task description] 📅 YYYY-MM-DD (Weekday) 🆔 [6-char-id] [user-tags]
- [ ] [Task description] 📅 YYYY-MM-DD (Weekday) 🆔 [6-char-id] [user-tags]
### 🎯 [Section Name]
- [ ] [Task description] 📅 YYYY-MM-DD (Weekday) 🆔 [6-char-id] [user-tags]
---
## 🗺️ PHASE 2: [Phase Name] ([date range - weekdays only])
[Continue pattern...]
---
## 💬 PARTICIPACIÓN EN FORO (⚠️ FECHA LÍMITE)
- [ ] [Task] 📅 [Forum Deadline - may be weekend] ⚠️ 🆔 [id] [tags]
- [ ] [Task] 📅 [Forum Deadline - may be weekend] ⚠️ 🆔 [id] [tags]
---
## 📝 ENTREGA FINAL (⚠️ FECHA LÍMITE)
- [ ] [Task] 📅 [Due Date - may be weekend] ⚠️ 🆔 [id] [tags]
- [ ] [Task] 📅 [Due Date - may be weekend] ⚠️ 🆔 [id] [tags]
---
## 📋 VERIFICACIÓN FINAL PRE-ENTREGA
- [ ] [Checklist item] 📅 [due date or day before] 🆔 [id] [tags]
---
**Total de tareas:** [count]
**Curso:** [course name] ([code])
**Días laborables disponibles:** [weekday count]
Generate unique 6-character IDs using this pattern:
[digit][letter][letter][letter][digit][digit]0zwo06, 8kj3m1, 5tyu89Week 1:
Mon 2025-10-30: Task 1
Tue 2025-10-31: Task 2
Wed 2025-11-01: Task 3
Thu 2025-11-02: Task 4
Fri 2025-11-03: Task 5
[SKIP WEEKEND]
Mon 2025-11-04: Task 6
...
Final Week:
Thu 2025-11-21: Task 38
Fri 2025-11-22: Task 39
Sat 2025-11-23: ⚠️ FORO DEADLINE (Exception)
Sun 2025-11-24: ⚠️ FINAL SUBMISSION (Exception)
Target task counts by assignment duration (counting weekdays only):
Adjust based on complexity, not just duration.
Always include:
Always include:
Final phase tasks (assign to last 2-3 weekdays before deadline):
If the PDF mentions:
/mnt/user-data/outputs/[CourseName]_Tarea[Number]_Checklist.md
Cibercultura_Tarea4_Checklist.mdBefore delivering, verify:
User: uploads PDF "Crea un plan de tareas para esta guía"
Assistant: "Perfecto, voy a analizar tu guía de aprendizaje y crear un checklist organizado.
Primero, déjame revisar el documento..."
[reads PDF and extracts info]
"He encontrado:
¿Cuándo vas a iniciar esta tarea? (Puedes usar la fecha oficial del 24 de octubre, o indicar otra fecha si prefieres empezar después)
Formato: YYYY-MM-DD o 'mañana' o 'próximo lunes', etc."
User: "30 de octubre"
Assistant: "Perfecto, iniciarás el 30 de octubre de 2025.
Eso te da 18 días laborables (lunes a viernes) para completar la tarea.
¿Qué tags quieres agregar a cada tarea? Ejemplo: #estudio #cibercultura #unad
Por favor proporciona los tags separados por espacios:"
User: "#estudio #cibercultura"
Assistant: "Excelente, voy a crear tu checklist con:
Organizaré las tareas en 4 fases principales:
Nota: He evitado asignar tareas en fines de semana. Solo las fechas límite del foro y entrega final pueden caer en fin de semana si así están establecidas.
Generando tu checklist..."
[creates markdown file]
He creado tu checklist con 43 tareas distribuidas en 18 días laborables. Todas las tareas están asignadas a días de lunes a viernes, excepto las fechas límite obligatorias. ¡Éxito con tu tarea!"
If user provides ambiguous start date:
If start date is after official start date:
If start date creates impossible timeline:
If PDF is unclear or missing information:
If critical deadline falls on weekend:
This skill should be updated if:
Version: 2.0 Created: October 2025 Last Updated: October 2025 (Added start date question + weekend avoidance) Skill Type: Academic Planning & Organization