diff --git a/docs/skills/SKILLS-INDEX.md b/docs/skills/SKILLS-INDEX.md index 06a7952..b382eac 100644 --- a/docs/skills/SKILLS-INDEX.md +++ b/docs/skills/SKILLS-INDEX.md @@ -22,7 +22,6 @@ | Skill | Purpose | Status | |-------|---------|--------| | **arbiter-coding** | Arbiter patterns, database schema, webhook structure | Planned | -| **task-creation** | Proper task file structure for tasks-index/ | Planned | | **gemini-consultation** | How to structure Gemini AI prompts | Planned | --- @@ -80,6 +79,30 @@ --- +### task-creation +**Location:** `docs/skills/task-creation/SKILL.md` +**Triggers:** New task, task status, "add to backlog", task frontmatter, priority, creating tasks + +**Purpose:** Proper task file creation for Decap CMS task management + +**What It Covers:** +- Task file structure (tasks-index vs tasks directories) +- Required frontmatter fields and values +- Priority levels and colors +- Task body template +- When to create full specs vs simple tasks +- Common tags and linking conventions +- Mobile task manager compatibility + +**Read This When:** +- Creating a new task +- Updating task status or priority +- Unsure about frontmatter format +- Adding implementation specs +- Task not appearing in CMS correctly + +--- + ## 🔜 Planned Skills | Skill | Purpose | Status | diff --git a/docs/skills/task-creation/SKILL.md b/docs/skills/task-creation/SKILL.md new file mode 100644 index 0000000..272f34b --- /dev/null +++ b/docs/skills/task-creation/SKILL.md @@ -0,0 +1,319 @@ +--- +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** 💙🔥❄️