skills/csv-exporter/SKILL.md
Generate properly formatted Teamwork CSV files from Functional Requirements Documents. Converts FRD requirements into CSV backlog with task hierarchy, priorities, story points, and estimated hours. Automatically populates estimated time from story point conversion. Invoke when user asks to "export to CSV", "create Teamwork backlog", or needs project backlog file.
npx skillsauth add kanopi/cms-cultivator csv-exporterInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Transform planning into actionable work. FRDs identify requirements; this skill converts them into structured, importable task backlogs that teams can immediately start executing.
This skill activates when:
Do NOT activate for:
teamwork-task-creator instead)teamwork-integrator instead)Extract structured data from FRD:
Requirements Sections:
Extract for each requirement:
Transform requirements into Teamwork CSV format with 10 required columns (see Teamwork Format for complete specification):
| Column | Purpose | Example | |--------|---------|---------| | Tasklist | Phase grouping | "Phase 1: Setup" | | Task | Task name with hierarchy | "[EPIC] Provider Directory [21 points]" | | Description | Complete ticket template | Full markdown template | | Assign to | Assignee email | "" (blank initially) | | Start date | Planned start | "" (blank initially) | | Due date | Target completion | "" (blank initially) | | Priority | Task priority | "high", "medium", "low" | | Estimated time | Hours estimate | "40" (from story points) | | Tags | Categorization | "SP-21,Phase-1,MVP" | | Status | Task status | "Active" |
Create three-level hierarchy using prefix conventions (see Hierarchy Examples for complete patterns):
Level 1 - Epic (no prefix):
[EPIC] User Authentication System [13 points]
Level 2 - Story (single dash):
- [STORY] User Registration Flow [5 points]
Level 3 - Task (double dash):
-- [TASK] Create registration form component [3 points]
Level 4 - Sub-task (triple dash, if needed):
--- [TASK] Validate email format [1 point]
Convert FRD priority levels to Teamwork priorities:
| FRD Priority | Teamwork Priority | Use For |
|--------------|-------------------|---------|
| MUST HAVE | high | MVP features, critical path, blockers, foundation |
| SHOULD HAVE | medium | Core features, important but not MVP-blocking |
| NICE TO HAVE | low | Enhancements, polish, post-MVP features |
Priority Guidelines:
CRITICAL FEATURE: Automatically populate the "Estimated time" column from story points using conversion table:
| Story Points | Estimated Hours | Typical Work | |--------------|-----------------|--------------| | 1 point | 2 hours | Simple changes, small fixes | | 2 points | 4 hours | Small features, standard tasks | | 3 points | 8 hours | Standard features (1 day) | | 5 points | 16 hours | Complex features (2 days) | | 8 points | 32 hours | Major features (4 days) | | 13 points | 80 hours | Large epics (2 weeks) | | 21 points | 120 hours | Very large epics (3 weeks) | | 34+ points | Split task | Must be decomposed |
Format: Enter as integer hours: 2, 4, 8, 16, 32, 80, 120
Note: Teamwork also accepts formats like 01:30, 1h 15m, 2 hours, but integer hours is simplest.
Use standardized ticket template for Description field:
## Description
> As a [user type], I need to [action] so that [benefit].
_Brief context about current vs. expected behavior._
## Story Points
**X points** - Justification for estimate
## Acceptance Criteria
* Specific testable criteria
* e.g. Feature works as described
* e.g. No console errors
## Steps to Validate
1. Explicit validation steps
1. Include URLs or specific test scenarios
## Technical Details
Implementation specifics, patterns to follow, architecture decisions.
## Deployment Notes
_New dependencies, configuration changes, post-launch tasks._
For Epics, add:
## Working With this Epic
- This Epic task will have a single integration branch/pull-request/multidev
- All internal QA will happen on Epic multidev
- Client UAT happens once entire epic is delivered and internally validated
- Epic branch merged to main once QA and UAT complete
Required tags for all tasks (comma-separated, no spaces):
Mandatory:
SP-X - Story points (e.g., SP-3, SP-8, SP-13)Phase-X - Phase number (e.g., Phase-1, Phase-2)Optional but recommended:
MVP - Must-have for minimum viable productFrontend - Frontend development workBackend - Backend development workDesign - Design work requiredContent - Content creation/migrationRecipe - Drupal recipe developmentBlock - WordPress block developmentExample: SP-8,Phase-1,MVP,Backend,Recipe
1. Receive FRD document
└─ Parse Implementation Plan sections
└─ Extract all requirements with story points
2. Organize by phase and epic
└─ Group requirements by Implementation Plan phases
└─ Identify epics (13+ points or related features)
└─ Establish parent-child relationships
3. Build task hierarchy
└─ Create epic rows (no prefix)
└─ Create story rows (- prefix)
└─ Create task rows (-- prefix)
└─ Add sub-task rows if needed (--- prefix)
4. Populate CSV columns
└─ Tasklist: Phase name
└─ Task: Name with hierarchy prefix and [X points]
└─ Description: Complete ticket template
└─ Priority: Map from MUST/SHOULD/NICE
└─ Estimated time: Convert story points to hours
└─ Tags: SP-X, Phase-X, and feature tags
└─ Status: "Active" for all
5. Validate CSV structure
└─ Verify story points sum correctly
└─ Check epic points = sum of story points
└─ Ensure all required columns present
└─ Validate CSV formatting (UTF-8, proper quotes)
6. Export CSV file
└─ Name: backlog-[project-name].csv
└─ Provide import instructions
└─ Summarize task counts and story points
File Encoding: UTF-8
Column Delimiter: Comma (,)
Text Qualifier: Double quotes (")
Escape Quotes: Double the quote character ("")
Header Row (exact column names):
Tasklist,Task,Description,Assign to,Start date,Due date,Priority,Estimated time,Tags,Status
Example Row:
"Phase 1: Setup","[EPIC] Provider Directory [21 points]","## Description
> As a site visitor, I need to search healthcare providers so that I can find the right provider.
## Story Points
**21 points** - Large epic including multiple content types and complex views
## Acceptance Criteria
* Provider search works with filters
* Provider profiles display correctly","","","",high,120,"SP-21,Phase-1,MVP,Backend",Active
Before exporting CSV, verify:
After generating CSV, provide summary:
## CSV Export Complete
**File:** backlog-project-name.csv
**Total Tasks:** 47 (8 epics + 23 stories + 16 tasks)
**Total Story Points:** 144 points
**Estimated Hours:** 672 hours (calculated from story points)
### Breakdown by Phase
**Phase 1: Setup and Foundation**
- Tasks: 12 (2 epics, 5 stories, 5 tasks)
- Story Points: 34 points
- Estimated Hours: 152 hours
**Phase 2: Core Features**
- Tasks: 20 (4 epics, 10 stories, 6 tasks)
- Story Points: 68 points
- Estimated Hours: 320 hours
**Phase 3: Enhanced Features**
- Tasks: 15 (2 epics, 8 stories, 5 tasks)
- Story Points: 42 points
- Estimated Hours: 200 hours
### Priority Distribution
- High: 22 tasks (47%)
- Medium: 18 tasks (38%)
- Low: 7 tasks (15%)
### Import Instructions
1. Go to your Teamwork project
2. Navigate to Settings → Import/Export
3. Select "Import Tasks from CSV"
4. Upload backlog-project-name.csv
5. Verify column mapping
6. Choose to create new tasklists or map to existing
7. Click Import
8. Review imported tasks for hierarchy and formatting
### Next Steps
- Assign tasks to team members during sprint planning
- Set start/due dates based on sprint schedule
- Review and refine task estimates based on team velocity
- Create sprint milestones in Teamwork
DO:
DON'T:
Complete reference materials available in the templates directory:
Use these references to understand CSV structure and implementation details.
tools
Strategist-focused site audit for discovery and pre-discovery. Given a site URL and optional qualitative research data, navigates the site via CoWork, audits against all 21 UX Laws from lawsofux.com, reviews content hierarchy, synthesises qualitative data, runs Lighthouse, and produces two deliverables — a Project Knowledge Summary (Markdown for Claude Desktop Projects) and a polished, iterable HTML Artifact for client sharing. Use when a strategist, UX lead, or PM asks for a discovery audit, UX laws audit, content hierarchy review, pre-discovery site review, "audit this site for strategy", "strategist audit", "UX audit", or pastes a site URL with discovery context. Not for developer audits — use accessibility-audit, performance-audit, or live-site-audit for those.
development
Provide story point estimation guidance with hour calculations for software development tasks. Uses Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34+) and converts story points to hours. Includes platform-specific adjustments and velocity calculations.
tools
Perform a full QA review of a Teamwork task by reading the task and all its comments for context, extracting the multi-dev URL, generating dynamic validation steps tailored to the task type, and using CoWork browser automation to execute those steps on the multi-dev environment. Produces a structured validation report with pass/fail per step, screenshots, internal notes, and a client-facing summary — all shown in chat. Use this skill whenever the user asks to QA, test, validate, or review a Teamwork task or multi-dev environment — even if they just say "can you QA this?" or paste a Teamwork link. Also triggers for phrases like "run QA on", "check the multi-dev", "validate this task", "test the dev link", or "review the ticket". Works across Drupal/CMS updates, WordPress/plugin updates, bug fixes, new feature development, and general web development tasks.
tools
Generate a client-facing project heartbeat / status update message for a Kanopi project, ready to be posted as a Teamwork message. Use this skill whenever the user asks to write, draft, generate, or send a project update, heartbeat, status update, or progress report to a client. Also triggers when the user says things like "time for a project update", "draft the heartbeat", "write up the update for [project]", or "it's been two weeks, let's send an update". Always use this skill — even if the user doesn't say "heartbeat" — whenever the intent is to summarise recent project activity for a client audience.