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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user