Update Decap CMS to display individual tasks instead of BLOCKERS/BACKLOG files

- Changed TASKS collection from 'files' to 'folder' type
- Points at docs/tasks-active/ for individual task files
- Each task shows as separate entry in CMS
- Sortable by priority, status, task number
- Filterable: blockers, high priority, in progress
- Summary shows: Title (P# BLOCKER if applicable)

Fields Added:
- task_number (required, integer)
- title, priority, status, is_blocker
- tags, estimated_hours, completed_date, blocked_by
- body (markdown for task details)

UI Improvements:
- Blockers sort to top automatically
- Click task → edit just that task
- Mobile-friendly (individual entries vs giant files)
- Links to full specs in /docs/tasks/ preserved

Replaces:
- Old: Two files (BLOCKERS.md, BACKLOG.md)
- New: Individual task files in /docs/tasks-active/
This commit is contained in:
Claude
2026-04-07 21:55:07 +00:00
parent 3e37d408cf
commit ed94646f34

View File

@@ -27,22 +27,38 @@ public_folder: "/branding"
collections:
# ═══════════════════════════════════════════════════════════
# 🔥 TASKS - ALWAYS FIRST, ALWAYS VISIBLE
# 🔥 TASKS - INDIVIDUAL TASK FILES
# ═══════════════════════════════════════════════════════════
- name: "tasks"
label: "🔥 TASKS"
files:
- label: "🚨 BLOCKERS (Launch Critical)"
name: "blockers"
file: "BLOCKERS.md"
fields:
- {label: "Content", name: "body", widget: "markdown"}
- label: "📋 BACKLOG (Future Work)"
name: "backlog"
file: "BACKLOG.md"
fields:
- {label: "Content", name: "body", widget: "markdown"}
folder: "docs/tasks-active"
create: true
extension: "md"
slug: "task-{{task_number}}-{{slug}}"
identifier_field: "title"
summary: "{{title}} (P{{priority}}{{#is_blocker}} BLOCKER{{/is_blocker}})"
sortable_fields: ["priority", "status", "task_number"]
view_filters:
- label: "Blockers"
field: "is_blocker"
pattern: true
- label: "High Priority"
field: "priority"
pattern: "1"
- label: "In Progress"
field: "status"
pattern: "IN_PROGRESS"
fields:
- {label: "Task Number", name: "task_number", widget: "number", value_type: "int", min: 1}
- {label: "Title", name: "title", widget: "string"}
- {label: "Priority", name: "priority", widget: "select", options: ["0", "1", "2", "3", "4"], default: "2", hint: "0=Blocker, 1=High, 2=Medium, 3=Low, 4=Personal"}
- {label: "Status", name: "status", widget: "select", options: ["PLANNED", "READY", "IN_PROGRESS", "BLOCKED", "COMPLETE"], default: "PLANNED"}
- {label: "Is Blocker?", name: "is_blocker", widget: "boolean", default: false, hint: "Soft launch critical tasks"}
- {label: "Tags", name: "tags", widget: "list", required: false}
- {label: "Estimated Hours", name: "estimated_hours", widget: "number", required: false, value_type: "int"}
- {label: "Completed Date", name: "completed_date", widget: "date", required: false, format: "YYYY-MM-DD"}
- {label: "Blocked By", name: "blocked_by", widget: "string", required: false}
- {label: "Task Details", name: "body", widget: "markdown"}
# ═══════════════════════════════════════════════════════════
# CORE DOCUMENTS (Single Files)