- 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/
428 lines
15 KiB
YAML
428 lines
15 KiB
YAML
backend:
|
|
name: gitea
|
|
repo: firefrost-gaming/firefrost-operations-manual
|
|
api_root: https://git.firefrostgaming.com/api/v1
|
|
base_url: https://git.firefrostgaming.com
|
|
app_id: ad439d72-e724-4f88-ad24-a1187c52b313
|
|
use_pkce: true
|
|
branch: master
|
|
auth_endpoint: login/oauth/authorize
|
|
token_endpoint: login/oauth/access_token
|
|
|
|
# Site settings
|
|
site_url: https://firefrostgaming.com
|
|
display_url: https://firefrostgaming.com
|
|
logo_url: /assets/images/2026/02/Light-logo.png
|
|
|
|
# Editorial workflow - draft/review/publish flow
|
|
publish_mode: editorial_workflow
|
|
|
|
# Disable preview pane globally (dark mode compatibility - font/background color issue)
|
|
editor:
|
|
preview: false
|
|
|
|
# Media library points to branding assets
|
|
media_folder: "docs/branding"
|
|
public_folder: "/branding"
|
|
|
|
collections:
|
|
# ═══════════════════════════════════════════════════════════
|
|
# 🔥 TASKS - INDIVIDUAL TASK FILES
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "tasks"
|
|
label: "🔥 TASKS"
|
|
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)
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "core_docs"
|
|
label: "📌 Core Documents"
|
|
files:
|
|
- label: "Session Handoff"
|
|
name: "handoff"
|
|
file: "SESSION-HANDOFF-NEXT.md"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- label: "Master Task List"
|
|
name: "tasks"
|
|
file: "docs/core/tasks.md"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- label: "Infrastructure Manifest"
|
|
name: "infrastructure"
|
|
file: "docs/core/infrastructure-manifest.md"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- label: "Document Index"
|
|
name: "doc-index"
|
|
file: "DOCUMENT-INDEX.md"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# PLANNING & STRATEGY
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "planning"
|
|
label: "📋 Planning"
|
|
folder: "docs/planning"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "milestones"
|
|
label: "🏆 Milestones"
|
|
folder: "docs/milestones"
|
|
create: true
|
|
extension: "md"
|
|
slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
sortable_fields: ["filename"]
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "vision"
|
|
label: "🔮 Vision"
|
|
folder: "docs/vision"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# TECHNICAL DOCUMENTATION
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "implementation"
|
|
label: "🔧 Implementation Guides"
|
|
folder: "docs/implementation"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "infrastructure"
|
|
label: "🖥️ Infrastructure"
|
|
folder: "docs/infrastructure"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "deployment"
|
|
label: "🚀 Deployment"
|
|
folder: "docs/deployment"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "services"
|
|
label: "⚙️ Services"
|
|
folder: "docs/services"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "troubleshooting"
|
|
label: "🔍 Troubleshooting"
|
|
folder: "docs/troubleshooting"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# PROCEDURES & STANDARDS
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "procedures"
|
|
label: "📝 Procedures"
|
|
folder: "docs/procedures"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "standards"
|
|
label: "📏 Standards"
|
|
folder: "docs/standards"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "guides"
|
|
label: "📖 Guides"
|
|
folder: "docs/guides"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "templates"
|
|
label: "📄 Templates"
|
|
folder: "docs/templates"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# RELATIONSHIP & CHRONICLERS
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "relationship"
|
|
label: "💜 Relationship"
|
|
folder: "docs/relationship"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "sessions"
|
|
label: "📅 Sessions"
|
|
folder: "docs/sessions"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# MARKETING & SOCIAL
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "marketing"
|
|
label: "📣 Marketing"
|
|
folder: "docs/marketing"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "social-media"
|
|
label: "📱 Social Media"
|
|
folder: "docs/social-media"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "branding"
|
|
label: "🎨 Branding"
|
|
folder: "docs/branding"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "branding_assets"
|
|
label: "🎨 Branding Assets"
|
|
files:
|
|
- label: "Trinity Final (PNG)"
|
|
name: "trinity-final"
|
|
file: "docs/branding/trinity-final.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "Trinity Fixed (WebP)"
|
|
name: "trinity-fixed"
|
|
file: "docs/branding/trinity-fixed.webp"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "Trinity Image (WebP)"
|
|
name: "trinity-image"
|
|
file: "docs/branding/trinity-image.webp"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "YouTube Banner"
|
|
name: "youtube-banner"
|
|
file: "docs/branding/youtube-banner-2560x1440.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "YouTube Banner (Minecraft)"
|
|
name: "youtube-banner-minecraft"
|
|
file: "docs/branding/youtube-banner-minecraft-2560x1440.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- name: "trinity_skins"
|
|
label: "🎮 Trinity Skins"
|
|
files:
|
|
- label: "Frost Wizard (Frostystyle)"
|
|
name: "frost-wizard"
|
|
file: "docs/branding/trinity-skins/frost-wizard-frostystyle.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "Fire Emissary (Gingerfury)"
|
|
name: "fire-emissary"
|
|
file: "docs/branding/trinity-skins/fire-emissary-gingerfury.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "Arcane Catalyst (Unicorn20089)"
|
|
name: "arcane-catalyst"
|
|
file: "docs/branding/trinity-skins/arcane-catalyst-unicorn20089.png"
|
|
fields:
|
|
- {label: "Image", name: "image", widget: "image"}
|
|
|
|
- label: "Skin Viewer"
|
|
name: "skin-viewer"
|
|
file: "docs/branding/trinity-skins/minecraft_skin_viewer.html"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "code"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# LEGAL & EMERGENCY
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "legal"
|
|
label: "⚖️ Legal"
|
|
folder: "docs/legal"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "emergency"
|
|
label: "🚨 Emergency Protocols"
|
|
folder: "docs/emergency-protocols"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# REFERENCE & RESEARCH
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "reference"
|
|
label: "📚 Reference"
|
|
folder: "docs/reference"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "research"
|
|
label: "🔬 Research"
|
|
folder: "docs/research"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "consultations"
|
|
label: "💬 Consultations"
|
|
folder: "docs/consultations"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
# ═══════════════════════════════════════════════════════════
|
|
# TOOLS & TRAINING
|
|
# ═══════════════════════════════════════════════════════════
|
|
- name: "tools"
|
|
label: "🛠️ Tools"
|
|
folder: "docs/tools"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "training"
|
|
label: "🎓 Training"
|
|
folder: "docs/training"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|
|
|
|
- name: "learning"
|
|
label: "📝 Learning"
|
|
folder: "docs/learning"
|
|
create: true
|
|
extension: "md"
|
|
identifier_field: "name"
|
|
summary: "{{filename}}"
|
|
fields:
|
|
- {label: "Content", name: "body", widget: "markdown"}
|