--- name: task-creation description: | Create and manage Firefrost Gaming tasks properly. Use this skill whenever: - Creating a new task (always use this format!) - Updating task status or priority - Moving tasks between states - Unsure about task file structure or frontmatter - Adding implementation specs for a task Tasks appear in Decap CMS at firefrostgaming.com/admin. This skill ensures proper formatting so tasks render correctly in the mobile task manager and CMS interface. --- # Task Creation Skill How to create, structure, and manage tasks in the Firefrost operations manual. --- ## 📁 TASK SYSTEM STRUCTURE ``` firefrost-operations-manual/ ├── docs/tasks-index/ # High-level task cards (Decap CMS) │ ├── task-026-modpackchecker.md │ ├── task-087-arbiter-lifecycle.md │ └── task-099-claude-projects.md ├── docs/tasks/ # Full implementation specs │ ├── task-026-modpackchecker/ │ │ ├── README.md │ │ └── phase-5-spec.md │ └── task-094-restart-scheduler/ │ └── full-spec.md ├── BACKLOG.md # Historical reference only └── BLOCKERS.md # Historical (launch complete) ``` ### Key Points - **`docs/tasks-index/`** — Individual files for each task, shown in Decap CMS - **`docs/tasks/`** — Detailed specs when needed (complex tasks only) - **BACKLOG.md** — Historical, don't add new tasks here - Tasks auto-appear at `firefrostgaming.com/admin` → 🔥 TASKS --- ## 📝 TASK FILE FORMAT ### Required Frontmatter ```yaml --- task_number: 100 title: Task Title Here status: Planned priority: P2-Medium is_blocker: false owner: Michael tags: - category estimated_hours: 4 --- ``` ### Frontmatter Fields | Field | Required | Values | |-------|----------|--------| | `task_number` | Yes | Integer (next available number) | | `title` | Yes | Short descriptive title | | `status` | Yes | `Planned`, `In Progress`, `Blocked`, `Complete` | | `priority` | Yes | `P0-Blocker`, `P1-High`, `P2-Medium`, `P3-Low`, `P4-Personal` | | `is_blocker` | Yes | `true` or `false` | | `owner` | Yes | `Michael`, `Meg`, `Holly`, `Trinity` | | `tags` | Yes | Array of category tags | | `estimated_hours` | No | Integer estimate | ### Priority Colors (in UI) | Priority | Color | Use For | |----------|-------|---------| | P0-Blocker | 🔴 Red | Launch-blocking, critical path | | P1-High | 🟠 Orange | Important, do soon | | P2-Medium | 🟡 Yellow | Standard priority | | P3-Low | 🔵 Blue | Nice to have | | P4-Personal | 🟣 Purple | Michael's personal projects | --- ## 📋 TASK BODY TEMPLATE After the frontmatter, add markdown body: ```markdown ## Overview Brief description of what this task accomplishes and why it matters. ## Current State What exists now, what's been done, any context. ## Next Steps - [ ] Step 1 - [ ] Step 2 - [ ] Step 3 ## Links - Full spec: `docs/tasks/task-XXX-name/README.md` - Related: Task #YY, Task #ZZ ``` --- ## ✅ COMPLETE EXAMPLE **File:** `docs/tasks-index/task-100-example-task.md` ```markdown --- task_number: 100 title: Example Task Title status: Planned priority: P2-Medium is_blocker: false owner: Michael tags: - infrastructure - automation estimated_hours: 8 --- ## Overview This task implements XYZ feature to improve ABC workflow. ## Current State - Feature does not exist yet - Related system ABC is in place - Dependency on Task #87 (not blocking) ## Next Steps - [ ] Design the architecture - [ ] Implement core functionality - [ ] Test with production data - [ ] Deploy to Command Center ## Links - Full spec: `docs/tasks/task-100-example/README.md` - Related: Task #87 (Arbiter lifecycle) ``` --- ## 🔢 FINDING THE NEXT TASK NUMBER Before creating a task, find the next available number: ```bash ls docs/tasks-index/ | grep -oP 'task-\K\d+' | sort -n | tail -1 ``` Add 1 to the highest number found. **Current highest (as of April 8, 2026):** Check the directory, likely in the 90s. --- ## 📂 WHEN TO CREATE FULL SPECS ### Simple Tasks (index file only) - Single-session work - Clear scope - No complex implementation details - Example: "Update footer text" ### Complex Tasks (index + full spec) - Multi-phase work - Database schema changes - API design needed - Multiple files/systems affected - Example: "ModpackChecker Phase 5" ### Full Spec Structure ``` docs/tasks/task-XXX-name/ ├── README.md # Overview, architecture ├── phase-1-spec.md # Phase 1 details ├── phase-2-spec.md # Phase 2 details └── database-schema.md # If applicable ``` --- ## 🔄 UPDATING TASK STATUS When task status changes: 1. **Edit the frontmatter** — Change `status` field 2. **Update body** — Add completion notes or blockers 3. **Commit** with descriptive message ### Status Transitions ``` Planned → In Progress → Complete ↓ Blocked → In Progress → Complete ``` ### Commit Message Format ``` docs(task): Update Task #XX status to [STATUS] [Brief description of what changed] Chronicler: #YY ``` --- ## ⚠️ COMMON MISTAKES | ❌ Wrong | ✅ Correct | |----------|-----------| | Adding tasks to BACKLOG.md | Create file in `docs/tasks-index/` | | Missing frontmatter fields | Include all required fields | | Wrong priority format | Use exact format: `P2-Medium` | | Spaces in filename | Use hyphens: `task-100-my-task.md` | | Forgetting `is_blocker` | Always include, even if false | --- ## 🏷️ COMMON TAGS Use consistent tags for filtering: | Tag | Use For | |-----|---------| | `infrastructure` | Server, hosting, DevOps | | `arbiter` | Arbiter backend work | | `website` | 11ty site, Cloudflare Pages | | `discord` | Discord bot, roles, automation | | `marketing` | FOMO, social, content | | `documentation` | Docs, standards, manuals | | `automation` | n8n, scripts, scheduled tasks | | `panel` | Pterodactyl, Blueprint, MVC | | `accessibility` | Medical accommodations | | `personal` | Michael's personal projects | --- ## 📱 MOBILE TASK MANAGER Tasks appear at: `firefrostgaming.com/admin/mobile.html` **Features:** - Card-based UI - Priority color coding - Filter tabs by status - Quick-edit dropdowns - Touch-optimized (44px+ targets) **For tasks to appear correctly:** - Frontmatter must be valid YAML - All required fields present - File in `docs/tasks-index/` directory --- ## 🔗 LINKING TASKS ### In Task Bodies ```markdown Related: Task #87, Task #92 Depends on: Task #26 (blocked until complete) Blocks: Task #99 ``` ### In Commit Messages ``` feat(arbiter): Implement webhook retry logic Adds exponential backoff for failed webhooks. Task: #87 Chronicler: #68 ``` --- ## ✅ TASK CREATION CHECKLIST Before committing a new task: - [ ] File in `docs/tasks-index/` (not BACKLOG.md) - [ ] Filename format: `task-XXX-short-name.md` - [ ] All required frontmatter fields present - [ ] `task_number` is unique and sequential - [ ] `priority` uses exact format (e.g., `P2-Medium`) - [ ] `status` is valid value - [ ] `is_blocker` is true or false (not missing) - [ ] `tags` is an array (even if single tag) - [ ] Body has Overview and Next Steps sections - [ ] Commit message references task number --- **Fire + Frost + Foundation = Where Love Builds Legacy** 💙🔥❄️