vagabond-rpg-foundryvtt/PROJECT_ROADMAP.json
Cal Corum 8656fd5f44 Mark task 2.10 complete in roadmap
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 20:44:19 -06:00

1039 lines
37 KiB
JSON

{
"project": {
"name": "Vagabond RPG - Foundry VTT System",
"description": "Complete Foundry VTT v13 system implementation for Vagabond RPG (Pulp Fantasy TTRPG)",
"repository": "vagabond-rpg-foundryvtt",
"license": "MIT",
"foundry_version": "13",
"created": "2024-12-12",
"status": "in_progress"
},
"phases": [
{
"id": "phase-0",
"name": "Project Foundation",
"description": "Initial setup, tooling, and development environment",
"tasks": [
{
"id": "0.1",
"name": "Create system manifest (system.json)",
"description": "Define system metadata, compatibility, dependencies, and entry points for Foundry VTT",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": []
},
{
"id": "0.2",
"name": "Create project structure",
"description": "Set up directory structure: module/, templates/, styles/, lang/, packs/, assets/",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": []
},
{
"id": "0.3",
"name": "Set up local Foundry dev container",
"description": "Docker Compose for local Foundry instance with hot-reload system mounting",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": []
},
{
"id": "0.4",
"name": "Create README.md",
"description": "Project documentation with setup instructions, development guide, and contribution guidelines",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": []
},
{
"id": "0.5",
"name": "Create .gitignore",
"description": "Ignore node_modules, foundry data, secrets, IDE files",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": []
},
{
"id": "0.6",
"name": "Set up SCSS compilation",
"description": "Build tooling for SCSS to CSS compilation with watch mode",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["0.2"]
},
{
"id": "0.7",
"name": "Create LICENSE file",
"description": "MIT license file",
"completed": true,
"tested": false,
"priority": "medium",
"dependencies": []
},
{
"id": "0.8",
"name": "Create CLAUDE.md",
"description": "AI context file for development assistance",
"completed": true,
"tested": false,
"priority": "medium",
"dependencies": []
}
]
},
{
"id": "phase-1",
"name": "Data Models",
"description": "Define all Actor and Item data structures using Foundry's Data Model system",
"tasks": [
{
"id": "1.1",
"name": "Create base Actor data model",
"description": "Shared fields for all actors: name, img, type, system data container",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["0.1", "0.2"]
},
{
"id": "1.2",
"name": "Create Character (PC) data model",
"description": "Stats (MIT/DEX/AWR/RSN/PRS/LUK), derived values (HP, Speed, Saves, Skill difficulties), level, XP, ancestry, class reference",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["1.1"]
},
{
"id": "1.3",
"name": "Create NPC/Monster data model",
"description": "HD, HP, TL, Zone, Morale, Appearing, Armor, Immune, Weak, Actions array, Abilities array",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["1.1"]
},
{
"id": "1.4",
"name": "Create dynamic resources system",
"description": "Extensible resource tracker: HP, Mana, Luck, Fatigue, Studied Dice, custom resources with current/max/bonus fields",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["1.2"]
},
{
"id": "1.5",
"name": "Create Skills data structure",
"description": "12 skills with associated stat, trained boolean, difficulty calculation, custom crit threshold",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["1.2"]
},
{
"id": "1.6",
"name": "Create base Item data model",
"description": "Shared fields for all items: name, img, type, system data container, description",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["0.1", "0.2"]
},
{
"id": "1.7",
"name": "Create Ancestry item data model",
"description": "Being type, size, traits array with name/description pairs",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.8",
"name": "Create Class item data model",
"description": "Key stat, action style, zone, training grants, starting pack, progression table (level -> features/mana/spells), feature definitions",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.9",
"name": "Create Spell item data model",
"description": "Damage type, base effect, crit effect, valid delivery types, duration options, mana cost formula components",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.10",
"name": "Create Perk item data model",
"description": "Prerequisites (stat requirements, training requirements, spell requirements), full description, mechanical effects",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.11",
"name": "Create Weapon item data model",
"description": "Damage dice, grip type (1H/2H/Versatile), properties (Finesse, Thrown, Cleave, etc.), attack skill, slot cost, value",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.12",
"name": "Create Armor item data model",
"description": "Armor value, type (Light/Heavy/Shield), slot cost, value, dodge penalty flag",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.13",
"name": "Create Equipment item data model",
"description": "Generic items: slot cost, value, description, quantity, consumable flag",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.14",
"name": "Create Feature item data model",
"description": "Class features as separate items: source class, level gained, description, mechanical effects, passive vs active",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.6"]
},
{
"id": "1.15",
"name": "Create Active Effects integration",
"description": "System for items (classes, perks, features) to modify actor stats, crit thresholds, resources",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["1.2", "1.8", "1.10", "1.14"]
}
]
},
{
"id": "phase-2",
"name": "Core System Logic",
"description": "JavaScript modules for game mechanics, rolls, and calculations",
"tasks": [
{
"id": "2.1",
"name": "Create main system entry point (vagabond.mjs)",
"description": "System initialization, hook registration, CONFIG setup, document class registration",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["1.1", "1.6"]
},
{
"id": "2.2",
"name": "Implement VagabondActor class",
"description": "Extended Actor with prepareData for derived values calculation (HP, Speed, Saves, Skill difficulties)",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.1", "1.2", "1.3"]
},
{
"id": "2.3",
"name": "Implement VagabondItem class",
"description": "Extended Item with type-specific preparation and chat card generation",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.1", "1.6"]
},
{
"id": "2.4",
"name": "Create dice rolling module",
"description": "Core roll functions: d20 checks, damage rolls, exploding dice (d6!), countdown dice, favor/hinder modifiers",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.1"]
},
{
"id": "2.5",
"name": "Implement skill check system",
"description": "Roll dialog with skill selection, favor/hinder toggles, automatic difficulty calculation, crit threshold display",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.2", "2.4"],
"notes": "Implemented with ApplicationV2, favor/hinder via Active Effects flags, FavorHinderDebug panel for testing"
},
{
"id": "2.6",
"name": "Implement attack roll system",
"description": "Weapon attack rolls with stat selection, damage calculation, crit bonus damage, Block/Dodge prompts for targets",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.4", "2.5", "1.11"],
"notes": "AttackRollDialog with weapon selection, damage roll on hit, crit doubles dice. Block/Dodge prompts deferred to Task 7.8"
},
{
"id": "2.7",
"name": "Implement save roll system",
"description": "Reflex/Endure/Will saves with correct stat combinations, favor/hinder, crit detection",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.4", "2.5"],
"notes": "SaveRollDialog with save type selection, Block/Dodge defense options. Uses {{this.variable}} pattern for Handlebars context."
},
{
"id": "2.8",
"name": "Implement spell casting system",
"description": "Dynamic spell dialog: select damage dice, delivery type, duration; auto-calculate mana cost; track focus state",
"completed": true,
"tested": false,
"priority": "critical",
"dependencies": ["2.4", "1.9"],
"notes": "SpellCastDialog with damage/effect toggle, delivery/duration selectors, live mana cost using rulebook formula. Focus tracking on successful cast."
},
{
"id": "2.9",
"name": "Implement crit threshold modifier system",
"description": "Per-skill and per-action crit thresholds that can be modified by Active Effects from classes/perks/features",
"completed": true,
"tested": true,
"priority": "high",
"dependencies": ["2.5", "1.15"]
},
{
"id": "2.10",
"name": "Implement resource management",
"description": "HP damage/healing, Mana spending/recovery, Luck pool, Fatigue accumulation with death trigger at 5",
"completed": true,
"tested": true,
"priority": "high",
"dependencies": ["2.2", "1.4"]
},
{
"id": "2.11",
"name": "Implement inventory slot tracking",
"description": "Calculate slots used from equipped items, max slots from Might, over-capacity warnings",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.2", "1.11", "1.12", "1.13"]
},
{
"id": "2.12",
"name": "Implement class feature automation",
"description": "When class item added to character, apply appropriate Active Effects for current level; update on level change",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.2", "2.3", "1.8", "1.15"]
},
{
"id": "2.13",
"name": "Implement morale check system (NPC)",
"description": "2d6 vs Morale roll, triggered manually or via hooks on death/half HP",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["2.4", "1.3"]
},
{
"id": "2.14",
"name": "Implement zone AI hints (NPC)",
"description": "Display suggested behavior based on Zone (Frontline/Midline/Backline) and HP status",
"completed": false,
"tested": false,
"priority": "low",
"dependencies": ["1.3"]
}
]
},
{
"id": "phase-3",
"name": "Actor Sheets (UI)",
"description": "Handlebars templates and sheet classes for Actor display and interaction",
"tasks": [
{
"id": "3.1",
"name": "Create base VagabondActorSheet class",
"description": "Extended ActorSheet with common methods, tab handling, drag-drop, context menus",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.2"]
},
{
"id": "3.2",
"name": "Design Character sheet layout (HTML/Handlebars)",
"description": "Match official Hero Record: Stats column, HP/Armor/Fatigue, Speed section, Saves, Skills grid, Attacks, Inventory, Abilities, Magic",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.1"]
},
{
"id": "3.3",
"name": "Implement Character sheet - Header section",
"description": "Name, Ancestry, Level, Class, XP, Size, Being Type fields",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2"]
},
{
"id": "3.4",
"name": "Implement Character sheet - Stats section",
"description": "Six stats display with large numbers matching official sheet aesthetic",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2"]
},
{
"id": "3.5",
"name": "Implement Character sheet - Combat section",
"description": "HP (current/max), Armor, Fatigue, Speed (base/bonus/crawl/travel), Current Luck",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2"]
},
{
"id": "3.6",
"name": "Implement Character sheet - Saves section",
"description": "Reflex, Endure, Will with calculated difficulties, clickable for rolls",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2", "2.7"]
},
{
"id": "3.7",
"name": "Implement Character sheet - Skills section",
"description": "12 skills grid with trained checkboxes, stat associations, difficulty numbers, clickable for rolls",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2", "2.5"]
},
{
"id": "3.8",
"name": "Implement Character sheet - Attacks section",
"description": "Weapon attack skills (Melee/Brawl/Ranged/Finesse) with difficulties, equipped weapons list with roll buttons",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2", "2.6"]
},
{
"id": "3.9",
"name": "Implement Character sheet - Inventory tab",
"description": "Item list with slots display, wealth tracking (G/S/C), occupied/max/bonus slots, drag-drop support",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.2", "2.11"]
},
{
"id": "3.10",
"name": "Implement Character sheet - Abilities tab",
"description": "List of Features, Perks, Ancestry traits; expandable descriptions; usage tracking for limited abilities",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.2"]
},
{
"id": "3.11",
"name": "Implement Character sheet - Magic tab",
"description": "Mana (current/max/casting max), known spells list with cast buttons, focus indicator",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.2", "2.8"]
},
{
"id": "3.12",
"name": "Implement Character sheet - Biography tab",
"description": "Rich text editor for character background, notes, bonds",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["3.2"]
},
{
"id": "3.13",
"name": "Create NPC/Monster sheet layout",
"description": "Compact stat block format: HD, HP, TL, Zone, Morale, Armor, Immunities, Weaknesses, Actions, Abilities",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.1", "1.3"]
},
{
"id": "3.14",
"name": "Implement NPC sheet - Stat block section",
"description": "Display all combat-relevant stats in traditional TTRPG stat block format",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.13"]
},
{
"id": "3.15",
"name": "Implement NPC sheet - Actions section",
"description": "List of attack actions with clickable roll buttons, damage dice display",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.13", "2.4"]
},
{
"id": "3.16",
"name": "Implement NPC sheet - Morale button",
"description": "Clickable morale check with result interpretation",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["3.13", "2.13"]
}
]
},
{
"id": "phase-4",
"name": "Item Sheets (UI)",
"description": "Handlebars templates and sheet classes for Item display and editing",
"tasks": [
{
"id": "4.1",
"name": "Create base VagabondItemSheet class",
"description": "Extended ItemSheet with common methods, type-specific tab handling",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.3"]
},
{
"id": "4.2",
"name": "Implement Ancestry item sheet",
"description": "Being type dropdown, size dropdown, traits editor (add/remove trait entries)",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.7"]
},
{
"id": "4.3",
"name": "Implement Class item sheet",
"description": "Key stat, training grants, progression table editor, feature definitions",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.8"]
},
{
"id": "4.4",
"name": "Implement Spell item sheet",
"description": "Damage type, effect text, crit effect, delivery options checkboxes, cost formula display",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.9"]
},
{
"id": "4.5",
"name": "Implement Perk item sheet",
"description": "Prerequisites editor (stat/training/spell requirements), description, effects",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.10"]
},
{
"id": "4.6",
"name": "Implement Weapon item sheet",
"description": "Damage dice selector, grip type, properties checkboxes, attack skill dropdown, value/slots",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.11"]
},
{
"id": "4.7",
"name": "Implement Armor item sheet",
"description": "Armor value, type dropdown, dodge penalty checkbox, value/slots",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.12"]
},
{
"id": "4.8",
"name": "Implement Equipment item sheet",
"description": "Generic item fields: description, quantity, slots, value, consumable flag",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.13"]
},
{
"id": "4.9",
"name": "Implement Feature item sheet",
"description": "Source class, level requirement, description, passive/active toggle, effects editor",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["4.1", "1.14"]
}
]
},
{
"id": "phase-5",
"name": "Styling & Theming",
"description": "SCSS styles for parchment theme with accessibility considerations",
"tasks": [
{
"id": "5.1",
"name": "Create SCSS architecture",
"description": "Variables file, mixins, partials structure for maintainable styles",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["0.6"]
},
{
"id": "5.2",
"name": "Define color palette",
"description": "Parchment background tones, high-contrast text colors, accent colors; WCAG AA compliant",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["5.1"]
},
{
"id": "5.3",
"name": "Create typography system",
"description": "Font selections for headers (stylized) and body (readable), size scale, line heights",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["5.1"]
},
{
"id": "5.4",
"name": "Style Character sheet",
"description": "Match official Hero Record aesthetic: stat column layout, bordered sections, parchment background",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["5.1", "5.2", "5.3", "3.2"]
},
{
"id": "5.5",
"name": "Style NPC sheet",
"description": "Clean stat block format, readable at small sizes, collapsible sections",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["5.1", "5.2", "5.3", "3.13"]
},
{
"id": "5.6",
"name": "Style Item sheets",
"description": "Consistent look across all item types, clear form layouts",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["5.1", "5.2", "5.3", "4.1"]
},
{
"id": "5.7",
"name": "Style roll dialogs",
"description": "Favor/Hinder toggles, modifier inputs, clear roll button",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["5.1", "5.2"]
},
{
"id": "5.8",
"name": "Style chat cards",
"description": "Roll results, spell casts, attack outcomes in themed chat messages",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["5.1", "5.2"]
},
{
"id": "5.9",
"name": "Accessibility audit",
"description": "Verify color contrast ratios, focus indicators, screen reader compatibility",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["5.4", "5.5", "5.6"]
}
]
},
{
"id": "phase-6",
"name": "Compendium Content",
"description": "Pre-populated compendium packs with all Vagabond RPG content",
"tasks": [
{
"id": "6.1",
"name": "Create compendium pack definitions",
"description": "Define packs in system.json: ancestries, classes, spells, perks, weapons, armor, equipment, monsters",
"completed": true,
"tested": false,
"priority": "high",
"dependencies": ["0.1"]
},
{
"id": "6.2",
"name": "Populate Ancestries compendium",
"description": "Human, Dwarf, Elf, Halfling, Draken, Goblin, Orc with full traits",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["6.1", "1.7"]
},
{
"id": "6.3",
"name": "Populate Classes compendium",
"description": "All 18 classes with complete progression tables and features",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["6.1", "1.8"]
},
{
"id": "6.4",
"name": "Populate Spells compendium",
"description": "All 55+ spells with damage types, effects, crit bonuses, delivery/duration options",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["6.1", "1.9"]
},
{
"id": "6.5",
"name": "Populate Perks compendium",
"description": "All 90+ perks with prerequisites and full descriptions",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["6.1", "1.10"]
},
{
"id": "6.6",
"name": "Populate Weapons compendium",
"description": "Standard weapons from equipment tables with stats and properties",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["6.1", "1.11"]
},
{
"id": "6.7",
"name": "Populate Armor compendium",
"description": "Standard armor options from equipment tables",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["6.1", "1.12"]
},
{
"id": "6.8",
"name": "Populate Equipment compendium",
"description": "Adventuring gear, alchemical items, tools from equipment tables",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["6.1", "1.13"]
},
{
"id": "6.9",
"name": "Populate Bestiary compendium",
"description": "Monsters from bestiary with full stat blocks (prioritize common encounters)",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["6.1", "1.3"]
}
]
},
{
"id": "phase-7",
"name": "Roll Dialogs & Chat",
"description": "Interactive roll configuration dialogs and rich chat message output",
"tasks": [
{
"id": "7.1",
"name": "Create Skill Check dialog",
"description": "Select skill, show difficulty/crit threshold, favor/hinder toggles, situational modifier input",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.5"]
},
{
"id": "7.2",
"name": "Create Attack Roll dialog",
"description": "Weapon selection, attack skill, favor/hinder, show crit threshold, target selection",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.6"]
},
{
"id": "7.3",
"name": "Create Save Roll dialog",
"description": "Save type selection (or auto from context), Block/Dodge choice for defense, favor/hinder",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.7"]
},
{
"id": "7.4",
"name": "Create Spell Cast dialog",
"description": "Damage dice selector (+Mana), delivery type dropdown with cost display, duration selector, total mana cost, cast skill",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["2.8"]
},
{
"id": "7.5",
"name": "Create Damage Roll dialog",
"description": "Dice pool display, exploding toggle, crit bonus indicator, target HP context",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.4"]
},
{
"id": "7.6",
"name": "Create roll result chat cards",
"description": "Rich chat output: roll formula, result, success/fail/crit indicator, damage if applicable",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.4"]
},
{
"id": "7.7",
"name": "Create spell cast chat cards",
"description": "Spell name, effect description, mana spent, damage if applicable, duration/focus indicator",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.8", "7.6"]
},
{
"id": "7.8",
"name": "Create defense prompt system",
"description": "When attack targets a token, prompt defender with Block/Dodge buttons in chat",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["7.2", "7.3"]
}
]
},
{
"id": "phase-8",
"name": "Localization",
"description": "Internationalization support with English as base language",
"tasks": [
{
"id": "8.1",
"name": "Create English language file",
"description": "All UI strings, stat names, skill names, item type names in en.json",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.2", "4.1"]
},
{
"id": "8.2",
"name": "Implement localization in templates",
"description": "Replace hardcoded strings with {{localize}} calls throughout all Handlebars templates",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["8.1"]
}
]
},
{
"id": "phase-9",
"name": "Testing & Polish",
"description": "Quality assurance, bug fixes, and user experience refinements",
"tasks": [
{
"id": "9.1",
"name": "Test character creation workflow",
"description": "Create character from scratch: set stats, add ancestry, add class, verify derived values",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["3.2", "6.2", "6.3"]
},
{
"id": "9.2",
"name": "Test skill check workflow",
"description": "Roll all 12 skills with various favor/hinder combinations, verify difficulties",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["7.1"]
},
{
"id": "9.3",
"name": "Test combat workflow",
"description": "Full combat round: attacks, saves, damage, HP tracking, death at 0 HP",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["7.2", "7.3", "7.5"]
},
{
"id": "9.4",
"name": "Test spell casting workflow",
"description": "Cast spells with various delivery/duration/damage combinations, verify mana costs",
"completed": false,
"tested": false,
"priority": "critical",
"dependencies": ["7.4"]
},
{
"id": "9.5",
"name": "Test leveling workflow",
"description": "Level up character: HP increase, feature gains, perk at odd levels, stat at even levels",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["2.12"]
},
{
"id": "9.6",
"name": "Test compendium import",
"description": "Drag items from all compendiums to character, verify data integrity",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["6.2", "6.3", "6.4", "6.5"]
},
{
"id": "9.7",
"name": "Test NPC/Monster workflow",
"description": "Create monster, run attacks, trigger morale check",
"completed": false,
"tested": false,
"priority": "high",
"dependencies": ["3.13", "6.9"]
},
{
"id": "9.8",
"name": "Cross-browser testing",
"description": "Verify functionality in Chrome, Firefox, Safari",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["9.1", "9.2", "9.3", "9.4"]
},
{
"id": "9.9",
"name": "Performance optimization",
"description": "Profile sheet rendering, optimize slow operations",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["9.1"]
}
]
},
{
"id": "phase-10",
"name": "Documentation & Release",
"description": "User documentation and package preparation for distribution",
"tasks": [
{
"id": "10.1",
"name": "Write user guide",
"description": "How to create characters, use sheets, cast spells, run combat",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["9.1", "9.2", "9.3", "9.4"]
},
{
"id": "10.2",
"name": "Write GM guide",
"description": "How to create NPCs/monsters, use compendiums, run encounters",
"completed": false,
"tested": false,
"priority": "medium",
"dependencies": ["9.7"]
},
{
"id": "10.3",
"name": "Create changelog",
"description": "Version history with features and fixes",
"completed": false,
"tested": false,
"priority": "low",
"dependencies": []
},
{
"id": "10.4",
"name": "Prepare package for Foundry repository",
"description": "Verify manifest, create release bundle, test fresh installation",
"completed": false,
"tested": false,
"priority": "low",
"dependencies": ["10.1", "10.2"]
}
]
}
],
"summary": {
"total_tasks": 98,
"phases": 11,
"critical_path": [
"0.1 -> 1.1 -> 2.1 -> 2.2 -> 3.1 -> 3.2 -> 7.1 -> 9.2",
"0.1 -> 1.6 -> 1.9 -> 2.8 -> 7.4 -> 9.4"
],
"estimated_complexity": "large",
"notes": [
"Phase 0-2 must complete before meaningful UI work",
"Phases 3-4 can proceed in parallel once data models exist",
"Phase 5 styling can be iterated throughout",
"Phase 6 content population can happen incrementally",
"Phase 7 dialogs depend on core mechanics but can be refined iteratively",
"Testing should happen continuously, not just in Phase 9"
]
}
}