From umbraco-upgrade
Decompose an Umbraco upgrade architecture plan into developer-ready tasks with acceptance criteria, effort estimates, dependencies, and workstream assignments. Use this skill when someone needs to break down an upgrade plan into tickets, work items, or tasks for a dev team. Also trigger when someone asks to "create tickets", "break this into tasks", "generate work items", "make this actionable for the team", or "create a task board" from an Umbraco upgrade plan. Outputs in multiple formats: markdown, CSV (for Jira/Azure DevOps import), and structured JSON.
How this skill is triggered — by the user, by Claude, or both
Slash command
/umbraco-upgrade:taskerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Convert an architecture plan into discrete, assignable, dev-ready tasks that a team can pick up and execute without needing to understand the full upgrade context.
Convert an architecture plan into discrete, assignable, dev-ready tasks that a team can pick up and execute without needing to understand the full upgrade context.
umbraco-upgrade-architect (preferred)Each task must be independently understandable by a developer who hasn't read the full plan. This means:
Read the architecture plan (JSON or markdown). Extract:
Each work item from the plan may become one or more tasks. The decomposition rules:
1:1 mapping (work item = task) when:
1:N decomposition (work item → multiple tasks) when:
For each finding category, use these decomposition patterns:
Recompile tasks:
Find-and-Replace tasks:
Refactor tasks:
Rebuild tasks:
Configure tasks:
Verify tasks:
Every task gets a primary workstream:
| Workstream | Roles | Typical Tasks |
|---|---|---|
| backend | .NET developers | C# changes, API updates, data access |
| backoffice | Frontend / Umbraco developers | Lit components, extension updates |
| devops | DevOps / infrastructure | CI/CD, Docker, deployment config |
| qa | QA / testers | Regression testing, content verification |
| admin | Tech lead / PM | License migration, decision-making |
Map task dependencies:
Express as:
TASK-001 → TASK-005 (TASK-005 requires TASK-001 complete)
TASK-002 ∥ TASK-003 (can run in parallel)
Produce tasks in three formats:
Use the task template at assets/task-template.md (local to this skill directory). For each task:
### TASK-XXX: [Title]
**Phase:** [N] — [Phase Name]
**Workstream:** [backend | backoffice | devops | qa | admin]
**Effort:** [XS | S | M | L | XL]
**Risk:** [LOW | MEDIUM | HIGH]
**Depends On:** [TASK-YYY, TASK-ZZZ] or None
**Source Findings:** [CS-001, CS-005]
**Playbook Reference:** migration-playbook.md#[section]
#### Context
[WHY this change is needed — 2-3 sentences a dev can read to understand the purpose]
#### What to Do
[Specific instructions — files to change, patterns to search, code to update]
#### Files Affected
- `src/path/to/file.cs` (line ~42)
- `src/path/to/other-file.cs`
#### Acceptance Criteria
- [ ] [Specific, testable criterion]
- [ ] [Another criterion]
- [ ] Code compiles without errors
- [ ] Existing tests pass
#### PR Description Template
What: [One-line summary] Why: [Breaking change reference] How: [Approach taken] Testing: [How this was verified] Related: TASK-XXX
Generate a CSV compatible with Jira/Azure DevOps/Linear import:
ID,Title,Description,Type,Priority,Effort,Workstream,Phase,Dependencies,Acceptance Criteria,Labels
TASK-001,"Update target framework to .NET 10","...","Task","Critical","S","devops","Phase 1","","Solution builds on .NET 10","umbraco-upgrade,framework"
Use scripts/generate-tasks.py (local to this skill directory) for CSV generation:
python3 scripts/generate-tasks.py tasks.json --format csv --output tasks.csv
python3 scripts/generate-tasks.py tasks.json --format azdo --output tasks-azdo.csv
python3 scripts/generate-tasks.py tasks.json --format jira --output tasks-jira.csv
{
"task_metadata": {
"project_name": "string",
"total_tasks": 0,
"total_effort_days": { "min": 0, "max": 0 },
"generated_date": "ISO-8601"
},
"tasks": [
{
"id": "TASK-001",
"title": "string",
"phase": 1,
"phase_name": "Framework & Infrastructure",
"workstream": "devops",
"effort": "S",
"effort_hours": { "min": 1, "max": 4 },
"risk": "LOW",
"depends_on": [],
"source_findings": ["PROJ-001"],
"playbook_ref": "migration-playbook.md#1",
"context": "string",
"instructions": "string",
"files_affected": ["src/MyProject/MyProject.csproj"],
"acceptance_criteria": ["Solution builds targeting net10.0"],
"labels": ["umbraco-upgrade", "framework"],
"pr_template": "string"
}
],
"dependency_graph": {
"TASK-001": { "depends_on": [], "blocks": ["TASK-005", "TASK-006"] },
"TASK-005": { "depends_on": ["TASK-001"], "blocks": [] }
},
"workstream_summary": {
"backend": { "task_count": 0, "total_effort_hours": { "min": 0, "max": 0 } },
"backoffice": { "task_count": 0, "total_effort_hours": { "min": 0, "max": 0 } },
"devops": { "task_count": 0, "total_effort_hours": { "min": 0, "max": 0 } },
"qa": { "task_count": 0, "total_effort_hours": { "min": 0, "max": 0 } },
"admin": { "task_count": 0, "total_effort_hours": { "min": 0, "max": 0 } }
},
"sprint_suggestions": [
{
"sprint": 1,
"theme": "Foundation",
"tasks": ["TASK-001", "TASK-002", "TASK-003"],
"parallel_tracks": [
{ "workstream": "devops", "tasks": ["TASK-001"] },
{ "workstream": "admin", "tasks": ["TASK-002"] }
]
}
]
}
Save to:
upgrade-tasks/tasks.md — full markdown task listupgrade-tasks/tasks.csv — importable CSVupgrade-tasks/tasks.json — structured JSONupgrade-tasks/dependency-graph.md — visual dependency mapWhen running as the tasker agent:
references/migration-playbook.md (two directories up: ../../references/migration-playbook.md) for migration recipes to reference in tasks| Size | Hours (min) | Hours (max) | Typical Work |
|---|---|---|---|
| XS | 0.25 | 0.5 | Config change, single find-replace |
| S | 0.5 | 4 | Small refactor, single file update |
| M | 4 | 16 | Multi-file refactor, API migration |
| L | 16 | 40 | Component rebuild, complex migration |
| XL | 40 | 80+ | Full rewrite (e.g., AngularJS → Lit) |
npx claudepluginhub twofoldtech-dakota/umbraco-upgrade --plugin umbraco-upgradeCreates structured implementation task breakdowns from proposal, design, and specification artifacts, outputting self-contained per-task files for subagents.
Converts PRDs into structured backend development tasks with data model notes, reliability patterns, and error taxonomy. Use for planning backend work from requirements.
Breaks a PRD into engineering tasks and hands off to Linear, GitHub Issues, OpenSpec, gstack, Symphony, or markdown. Useful for structured project breakdown and task tracking.