# Academic Task Planner

> 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.

- Skill: `diegosouzapw/academic-task-planner` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add diegosouzapw/academic-task-planner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/diegosouzapw/academic-task-planner/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: diegosouzapw (https://skillmd.com/u/diegosouzapw)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/diegosouzapw/academic-task-planner

---


# Academic Task Planner Skill

## Purpose
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 to Use This Skill
- User uploads a course assignment guide PDF (like UNAD's "Guía de aprendizaje")
- User requests a task breakdown or planning for an academic assignment
- User asks to create a checklist from an academic document

## Core Workflow

### Step 1: PDF Analysis
When a PDF is uploaded or referenced:
1. Read the complete PDF using `read_pdf_content` tool
2. Extract key information:
   - **Course name and code**
   - **Assignment title**
   - **Official start date** (when assignment opens)
   - **Due date** (final deadline)
   - **Points/weight**
   - **Deliverables** (what must be submitted)
   - **Required steps** (what must be done)
   - **Platform requirements** (where to submit)
   - **Forum participation requirements** (if any)

### Step 2: Interactive Data Collection

Ask the user TWO questions in sequence:

#### Question 1: Start Date
```
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.

#### Question 2: Tags
```
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.

### Step 3: Calculate Critical Dates

Based on the extracted dates and user input:
1. **User start date**: The date the user will actually begin working
2. **Official due date**: Final submission deadline from PDF
3. **Forum deadline**: **3 days before the final due date**
4. **Available working days**: Calculate weekdays between start and due date

### Step 4: Weekend Avoidance Logic

**CRITICAL RULE: Avoid weekends for regular tasks**

When assigning dates to tasks:

✅ **DO assign to weekdays:**
- Monday through Friday for ALL regular tasks
- Reading, research, creation, editing, review tasks

❌ **DO NOT assign to weekends (Saturday/Sunday)** EXCEPT:
- Forum participation deadline (if it falls on weekend)
- Final submission deadline (if it falls on weekend)
- These are immovable dates from the PDF

**Date Assignment Algorithm:**

```python
# 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) ⚠️
```

### Step 5: Task Breakdown Strategy

Create tasks with **moderate granularity**:
- **Not too detailed**: Avoid micro-tasks like "open document" or "click button"
- **Not too broad**: Avoid vague tasks like "complete entire assignment"
- **Balance**: Each task should take 30 minutes to 2-3 hours to complete

#### Task Categories and Typical Breakdown:

**Reading/Research Phase:**
- One task per major reading material
- One task for exploring digital resources (OVAs, videos, etc.)
- One task for reviewing previous work (if applicable)

**Creation Phase:**
For each deliverable, create 3-5 tasks:
- Planning/outlining
- Content creation
- Visual/technical elements
- Review and refinement
- Finalization and testing links/access

**Forum Participation:**
- One task: share main deliverable in forum
- One task: comment on peer work
- One task: capture screenshots for evidence
- **Note**: Forum deadline date is FIXED even if it's a weekend

**Final Documentation:**
- One task: write reflection
- One task: format bibliography
- One task: assemble final document
- One task: quality check (spelling, links, format)
- One task: plagiarism check (Turnitin/similar)
- One task: submit to platform
- **Note**: Final submission date is FIXED even if it's a weekend

### Step 6: Generate Markdown Structure

```markdown
# ✅ 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]
```

## ID Generation Rules

Generate unique 6-character IDs using this pattern:
- Mix of lowercase letters and numbers
- Format: `[digit][letter][letter][letter][digit][digit]`
- Examples: `0zwo06`, `8kj3m1`, `5tyu89`
- Ensure each ID is unique within the document

## Date Assignment Strategy

### Phase 1: Calculate Available Days
1. Count weekdays between user start date and due date
2. Identify if forum/submission deadlines fall on weekends
3. Reserve those critical dates

### Phase 2: Distribute Tasks
1. **Start with user-provided start date**
2. **Assign only to weekdays (Mon-Fri)** for regular tasks
3. **Skip weekends** - jump from Friday to next Monday
4. **Group related tasks** on same or consecutive days
5. **Reserve last 2-3 weekdays** before deadline for final tasks

### Phase 3: Mark Critical Dates
- Add ⚠️ symbol to tasks that fall on weekends (forum/submission only)
- Clearly indicate these are immovable deadlines

### Example Calendar Progression:

```
Week 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)
```

## Task Quantity Guidelines

Target task counts by assignment duration (counting weekdays only):
- **1-2 weeks (10-14 weekdays):** 15-25 tasks
- **3-4 weeks (15-20 weekdays):** 30-50 tasks
- **5+ weeks (25+ weekdays):** 50-70 tasks

Adjust based on complexity, not just duration.

## Special Considerations

### Forum Participation
Always include:
- Calculate deadline: **exactly 3 days before final due date**
- If forum deadline falls on weekend: Keep the date, add ⚠️ symbol
- Minimum tasks:
  1. Post main content/link
  2. Comment on at least one peer
  3. Capture evidence (screenshots)

### Final Submission
Always include:
- If final deadline falls on weekend: Keep the date, add ⚠️ symbol
- Prepare final tasks for the weekday(s) immediately before
- Include clear warning about the weekend deadline

### Document Assembly
Final phase tasks (assign to last 2-3 weekdays before deadline):
- Cover page creation
- All deliverable links
- Evidence captures
- Reflection/learning
- Bibliography/references
- Format review
- Link verification
- Plagiarism check
- Platform submission

### Platform-Specific Tasks
If the PDF mentions:
- **Miro**: Include account creation and public sharing
- **Video/Reel**: Include filming, editing, publishing, link copying
- **Presentations**: Include slide creation, design, and export
- **Turnitin**: Include upload and similarity report review

## Output Format

1. **Always create the markdown file** in `/mnt/user-data/outputs/`
2. **Filename format**: `[CourseName]_Tarea[Number]_Checklist.md`
   - Example: `Cibercultura_Tarea4_Checklist.md`
3. **Use the user's provided tags** on every single task
4. **Include weekday count** at the bottom
5. **Mark weekend deadlines** with ⚠️ symbol

## Quality Checklist

Before delivering, verify:
- [ ] User was asked for start date
- [ ] User was asked for tags
- [ ] All dates are in YYYY-MM-DD format
- [ ] Regular tasks are assigned ONLY to weekdays (Mon-Fri)
- [ ] Weekend dates appear ONLY for critical deadlines (forum, submission)
- [ ] Critical weekend deadlines have ⚠️ symbol
- [ ] Forum deadline is exactly 3 days before due date
- [ ] All IDs are unique and follow the pattern
- [ ] User's tags appear on every task
- [ ] Tasks are moderately granular (not too detailed, not too vague)
- [ ] Phases are logically organized by type of work
- [ ] Final verification section is included
- [ ] Weekday count is mentioned in document
- [ ] File is saved in outputs directory

## Example Interaction

**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:
- **Curso:** Cibercultura (403037)
- **Tarea:** Tarea 4 - Ser digital
- **Fecha oficial de apertura:** 24 de octubre de 2025
- **Fecha de entrega:** 24 de noviembre de 2025
- **Valor:** 120 puntos

**¿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:
- Inicio: 30 de octubre (miércoles)
- Tags: #estudio #cibercultura
- Tareas asignadas solo en días laborables (lunes a viernes)
- **Fecha límite del foro:** 21 de noviembre (viernes)
- **Fecha de entrega final:** 24 de noviembre (lunes)

Organizaré las tareas en 4 fases principales:
1. Semana 1: Lectura y comprensión (6 tareas)
2. Semana 2: Creación del mapa mental (6 tareas)
3. Semana 3: Producción del reel (8 tareas)
4. Semana 4: Documentación y entrega (16 tareas)

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]*

"[View Cibercultura_Tarea4_Checklist.md](computer:///mnt/user-data/outputs/Cibercultura_Tarea4_Checklist.md)

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!"

## Error Handling

**If user provides ambiguous start date:**
- Parse natural language ("mañana", "próximo lunes", "en 3 días")
- Confirm the calculated date with user before proceeding

**If start date is after official start date:**
- Acknowledge: "Iniciarás [X] días después de la apertura oficial"
- Recalculate available time
- Warn if time is tight

**If start date creates impossible timeline:**
- Alert user: "Con esta fecha de inicio, solo tendrás [X] días laborables, lo cual puede ser muy ajustado"
- Ask if they want to adjust or proceed anyway

**If PDF is unclear or missing information:**
- Clearly state what information is missing
- Ask user to provide the missing details
- Proceed with reasonable defaults if user confirms

**If critical deadline falls on weekend:**
- Keep the exact date
- Add ⚠️ warning symbol
- Mention it in the summary

## Tips for Best Results

1. **Read the entire PDF** before starting to break down tasks
2. **Always ask for start date** - don't assume they start on official opening date
3. **Strictly avoid weekends** for regular tasks - students work Mon-Fri
4. **Preserve critical dates** even if they're weekends - deadlines are deadlines
5. **Identify ALL deliverables** - don't miss any requirements
6. **Look for evaluation criteria** - these hint at important tasks
7. **Note any sequencing requirements** - some tasks must be done before others
8. **Check for technical requirements** - platforms, formats, tools
9. **Always ask for tags** - don't assume or skip this step
10. **Count available weekdays** - this determines realistic task distribution

## Maintenance Notes

This skill should be updated if:
- User feedback indicates tasks are too granular or too broad
- Weekend avoidance logic needs refinement
- New common assignment types emerge (e.g., podcast creation, AR projects)
- Platform requirements change (e.g., new submission systems)
- Date calculation logic needs adjustment

---

**Version:** 2.0
**Created:** October 2025
**Last Updated:** October 2025 (Added start date question + weekend avoidance)
**Skill Type:** Academic Planning & Organization

