[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HQD8KGDTSSFYJS6Z78SBVH":3,"skill-same:01M6HQD8KGDTSSFYJS6Z78SBVH":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":6,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6HQD8KGDTSSFYJS6Z78SBVH","data-analysis-workflows",null,"Comprehensive data analysis workflows including answering data questions, exploring datasets, writing SQL queries, creating visualizations, building dashboards, and validating analyses. Use when conducting data analysis tasks, from quick lookups to comprehensive reports.","welflau\u002Fai-dev-system","welflau","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7010385?v=4","01M6HPTDGF18RFY07M229P8CTM","01M6HPTDMRMZCJPYBFEA9XVVYT",3,"MIT","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcb_teams_marketplace\u002Fplugins\u002Fdata\u002Fskills\u002Fdata-analysis-workflows\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000013","分析与可视化","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"data analysis","workflows","data analysis workflows","data","analysis","when","writing","quick","questions","queries","datasets","sql queries","reports","use","visualizations","dashboards","tasks","sql","building dashboards","2026-11-10 10:12:30",false,"---\nname: data-analysis-workflows\ndescription: >\n  Comprehensive data analysis workflows including answering data questions, exploring datasets,\n  writing SQL queries, creating visualizations, building dashboards, and validating analyses.\n  Use when conducting data analysis tasks, from quick lookups to comprehensive reports.\n---\n\n# Data Analysis Workflows\n\nComplete workflows for common data analysis tasks. Covers the full process from understanding requirements to delivering validated results.\n\n## Workflow 1: Answer Data Questions\n\nAnswer a data question, from a quick lookup to a full analysis to a formal report.\n\n### 1. Understand the Question\n\nParse the user's question and determine:\n\n- **Complexity level**:\n  - **Quick answer**: Single metric, simple filter, factual lookup (e.g., \"How many users signed up last week?\")\n  - **Full analysis**: Multi-dimensional exploration, trend analysis, comparison (e.g., \"What's driving the drop in conversion rate?\")\n  - **Formal report**: Comprehensive investigation with methodology, caveats, and recommendations (e.g., \"Prepare a quarterly business review of our subscription metrics\")\n- **Data requirements**: Which tables, metrics, dimensions, and time ranges are needed\n- **Output format**: Number, table, chart, narrative, or combination\n\n### 2. Gather Data\n\n**Options for data access:**\n\n1. Ask the user to provide data:\n   - Paste query results directly\n   - Upload a CSV or Excel file\n   - Describe the schema so you can write queries for them to run\n2. If writing queries for manual execution, use the \\`sql-queries\\` skill for dialect-specific best practices\n3. Once data is provided, proceed with analysis\n\n### 3. Analyze\n\n- Calculate relevant metrics, aggregations, and comparisons\n- Identify patterns, trends, outliers, and anomalies\n- Compare across dimensions (time periods, segments, categories)\n- For complex analyses, break the problem into sub-questions and address each\n\n### 4. Validate Before Presenting\n\nBefore sharing results, run through validation checks:\n\n- **Row count sanity**: Does the number of records make sense?\n- **Null check**: Are there unexpected nulls that could skew results?\n- **Magnitude check**: Are the numbers in a reasonable range?\n- **Trend continuity**: Do time series have unexpected gaps?\n- **Aggregation logic**: Do subtotals sum to totals correctly?\n\nIf any check raises concerns, investigate and note caveats.\n\n### 5. Present Findings\n\n**For quick answers:**\n- State the answer directly with relevant context\n- Include the query used (collapsed or in a code block) for reproducibility\n\n**For full analyses:**\n- Lead with the key finding or insight\n- Support with data tables and\u002For visualizations\n- Note methodology and any caveats\n- Suggest follow-up questions\n\n**For formal reports:**\n- Executive summary with key findings\n- Methodology section explaining approach and data sources\n- Detailed findings with supporting evidence\n- Caveats and limitations\n- Recommendations and next steps\n- Appendix with full queries and data tables\n\n---\n\n## Workflow 2: Explore and Profile Datasets\n\nGenerate a comprehensive data profile for a table or uploaded file. Understand its shape, quality, and patterns before diving into analysis.\n\n### 1. Access the Data\n\n**If a file is provided (CSV, Excel, Parquet, JSON):**\n1. Read the file and load into a working dataset\n2. If the file is large, sample it for profiling\n\n**If user describes a table:**\n1. Ask for sample data or schema information\n2. Generate profiling queries for the user to run\n\n### 2. Profile the Dataset\n\nGenerate a report covering:\n\n#### Basic Statistics\n- **Row count**: Total number of records\n- **Column count**: Number of fields\n- **Primary key**: Identify unique identifier(s)\n- **Grain**: One row per what? (user, order, event, etc.)\n- **Time range**: For temporal data, first and last dates\n\n#### Column-Level Analysis\n\nFor each column, report:\n- **Type**: String, integer, float, date, boolean, etc.\n- **Null rate**: Percentage of missing values\n- **Cardinality**: Number of unique values\n- **Sample values**: Examples of what the column contains\n- **Distribution**: For numeric columns, min\u002Fmax\u002Fmean\u002Fmedian\u002Fstd dev\n\n#### Data Quality Flags\n\nAutomatically identify potential issues:\n- High null rates (>10%)\n- Unexpected values (e.g., negative values in a count field)\n- Duplicate rows\n- Inconsistent formatting (mixed case, trailing spaces)\n- Time gaps in temporal data\n\n### 3. Recommend Next Steps\n\nBased on profiling results, suggest:\n- **High-value dimensions** to explore (columns with moderate cardinality, low nulls)\n- **Data quality issues** to address before analysis\n- **Potential relationships** to investigate (correlated columns, hierarchies)\n- **Analysis starting points** based on the data's structure\n\n---\n\n## Workflow 3: Write Optimized SQL\n\nWrite a SQL query from a natural language description, optimized for your specific SQL dialect and following best practices.\n\n### 1. Understand the Request\n\nParse the user's description to identify:\n\n- **Output columns**: What fields should the result include?\n- **Filters**: What conditions limit the data (time ranges, segments, statuses)?\n- **Aggregations**: Are there GROUP BY operations, counts, sums, averages?\n- **Joins**: Does this require combining multiple tables?\n- **Ordering**: How should results be sorted?\n- **Limits**: Is there a top-N or sample requirement?\n\n### 2. Determine SQL Dialect\n\nAsk the user which database they're using if not specified:\n- PostgreSQL \u002F Aurora \u002F Supabase\n- Snowflake\n- BigQuery\n- Databricks \u002F Spark SQL\n- Redshift\n- MySQL \u002F MariaDB\n\nEach dialect has syntax differences for date functions, string operations, and window functions.\n\n### 3. Write the Query\n\nUse CTEs (Common Table Expressions) for complex queries:\n\n\\`\\`\\`sql\nWITH base_data AS (\n  -- First CTE: Get the base dataset\n  SELECT ...\n),\naggregated AS (\n  -- Second CTE: Perform aggregations\n  SELECT ...\n)\n-- Final SELECT from CTEs\nSELECT * FROM aggregated;\n\\`\\`\\`\n\n**Best practices:**\n- Use explicit JOIN syntax (not implicit joins in WHERE clause)\n- Qualify all column names with table aliases when joining\n- Use meaningful CTE and alias names\n- Add comments explaining complex logic\n- Format for readability (indent, line breaks)\n- Consider performance (filter early, avoid SELECT *, use appropriate indexes)\n\n### 4. Add Context\n\nInclude with the query:\n- **Purpose**: One-line description of what the query does\n- **Tables used**: Which tables are referenced\n- **Performance notes**: Expected row counts, potential bottlenecks\n- **Dialect-specific notes**: Any syntax specific to the database being used\n\n---\n\n## Workflow 4: Create Visualizations\n\nCreate publication-quality data visualizations using Python. Generates charts from data with best practices for clarity, accuracy, and design.\n\n### 1. Understand the Request\n\nDetermine:\n\n- **Data source**: Query results, pasted data, CSV\u002FExcel file, or data to be queried\n- **Chart type**: Explicitly requested or needs to be recommended\n- **Purpose**: Exploration, presentation, report, dashboard component\n- **Audience**: Technical team, executives, external stakeholders\n\n### 2. Get the Data\n\nIf data is not yet provided:\n- Ask the user to paste data or upload a file\n- If querying is needed, use the SQL workflow to generate the query first\n\n### 3. Choose the Right Chart Type\n\nSelect visualization based on what you're showing:\n\n| What You're Showing | Best Chart | When to Use |\n|---------------------|------------|-------------|\n| **Trend over time** | Line chart | Continuous time series, shows change |\n| **Comparison across categories** | Bar chart | Comparing discrete categories |\n| **Part-to-whole** | Stacked bar \u002F Pie | Composition, relative sizes |\n| **Distribution** | Histogram \u002F Box plot | Understanding spread and outliers |\n| **Correlation** | Scatter plot | Relationship between two variables |\n| **Ranking** | Horizontal bar | Ordered list, easy to read labels |\n\n### 4. Generate Python Code\n\nUse \\`plotly\\` for interactive charts, \\`seaborn\\` or \\`matplotlib\\` for static charts.\n\n**Chart template pattern:**\n\n\\`\\`\\`python\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n# Load data\ndf = pd.DataFrame({...})\n\n# Create figure\nfig, ax = plt.subplots(figsize=(10, 6))\n\n# Plot\nax.plot(df['x'], df['y'])  # or .bar(), .scatter(), etc.\n\n# Style\nax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')\nax.set_xlabel('X Axis Label')\nax.set_ylabel('Y Axis Label')\nax.grid(axis='y', alpha=0.3)\n\n# Show\nplt.tight_layout()\nplt.show()\n\\`\\`\\`\n\n### 5. Apply Design Principles\n\n- **Clarity**: Remove chart junk, use clear labels\n- **Accuracy**: Don't truncate axes to exaggerate differences\n- **Accessibility**: Use colorblind-friendly palettes\n- **Context**: Add reference lines, annotations for key points\n\n---\n\n## Workflow 5: Build Interactive Dashboards\n\nBuild a self-contained interactive HTML dashboard with charts, filters, tables, and professional styling. Opens directly in a browser -- no server or dependencies required.\n\n### 1. Understand Dashboard Requirements\n\nDetermine:\n\n- **Purpose**: Executive overview, operational monitoring, deep-dive analysis, team reporting\n- **Audience**: Who will use this dashboard?\n- **Key metrics**: What numbers matter most?\n- **Dimensions**: What should users be able to filter or slice by?\n- **Data source**: Live query, pasted data, CSV file, or sample data\n\n### 2. Gather the Data\n\nIf data needs to be queried, use the SQL workflow.\nIf data is provided, ensure it's in a structured format (CSV or JSON).\n\n### 3. Design Dashboard Layout\n\nOrganize into sections:\n\n1. **Header**: Title, date range, key filters\n2. **KPI cards**: 3-5 big numbers that matter most\n3. **Primary charts**: 2-3 main visualizations (trends, comparisons)\n4. **Details section**: Tables or secondary charts for drill-down\n5. **Footer**: Methodology notes, data source, last updated\n\n### 4. Generate HTML\u002FJS Code\n\nUse this template structure:\n\n\\`\\`\\`html\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n    \u003Cmeta charset=\"UTF-8\">\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>Dashboard Title\u003C\u002Ftitle>\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fchart.js@4.4.0\u002Fdist\u002Fchart.umd.min.js\">\u003C\u002Fscript>\n    \u003Cstyle>\n        \u002F* CSS styling *\u002F\n    \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n    \u003Cdiv class=\"container\">\n        \u003C!-- Dashboard content -->\n    \u003C\u002Fdiv>\n    \u003Cscript>\n        \u002F\u002F Data\n        const data = { \u002F* embed data here *\u002F };\n        \n        \u002F\u002F Charts\n        \u002F\u002F Filters\n        \u002F\u002F Interactivity\n    \u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n\\`\\`\\`\n\n### 5. Add Interactivity\n\nImplement:\n- **Dropdown filters**: Filter by category, time range, segment\n- **Chart interactions**: Hover tooltips, click to drill-down\n- **Table sorting**: Click column headers to sort\n- **Dynamic updates**: Filters update all charts simultaneously\n\n---\n\n## Workflow 6: Validate Analysis Before Sharing\n\nReview an analysis for accuracy, methodology, and potential biases before sharing with stakeholders. Generates a confidence assessment and improvement suggestions.\n\n### 1. Review Methodology and Assumptions\n\nExamine:\n\n**Data selection:**\n- Which tables\u002Fsources were used? Are they the right ones?\n- What time range? Is it recent enough?\n- Any filters applied? Do they introduce bias?\n\n**Aggregation logic:**\n- Are groupings appropriate for the question?\n- Do subtotals match totals?\n- Are nulls handled correctly (excluded vs. counted as zero)?\n\n**Statistical methods:**\n- If using averages, is median more appropriate?\n- If comparing percentages, are denominators consistent?\n- If showing trends, is seasonality accounted for?\n\n### 2. Check for Common Pitfalls\n\n**Survivorship bias:**\n- Example: Analyzing only current customers excludes churned users\n- Check: Does the analysis need to include historical records?\n\n**Selection bias:**\n- Example: Survey responses from only power users\n- Check: Is the sample representative of the population?\n\n**Simpson's paradox:**\n- Example: Overall trend contradicts subgroup trends when aggregated\n- Check: Break down by segments before concluding\n\n**Correlation vs. causation:**\n- Example: Ice cream sales correlate with drowning deaths (both caused by summer)\n- Check: Are confounding variables at play?\n\n### 3. Sanity Check Results\n\nCompare results to expectations:\n\n- **Magnitude**: Are numbers in the right ballpark?\n- **Direction**: Do trends match known business context?\n- **Consistency**: Do related metrics tell the same story?\n\nIf something looks off:\n- Recheck the query\n- Look for data quality issues\n- Consider if external factors could explain it\n\n### 4. Assess Confidence Level\n\nRate confidence as:\n\n- **High confidence**: Methodology sound, results validated, limitations documented\n- **Medium confidence**: Minor concerns or caveats, but core findings are solid\n- **Needs more work**: Methodological issues or data quality problems need addressing\n\n### 5. Document Limitations\n\nEvery analysis has limits. Document:\n- What's excluded from the data\n- Assumptions made\n- Margin of error or uncertainty\n- Known data quality issues\n- Alternative interpretations\n\n**Example caveat:**\n> \"This analysis excludes trial users, which may overstate conversion rate by ~5pp compared to total signups.\"\n\n---\n\n## When to Use Each Workflow\n\n- **Answer Data Questions**: User has a specific question to answer\n- **Explore Datasets**: Encountering a new table or dataset\n- **Write SQL**: Need to generate queries for manual execution\n- **Create Visualizations**: Need charts for reports or presentations\n- **Build Dashboards**: Need interactive, shareable dashboards\n- **Validate Analysis**: Before sharing important findings with stakeholders\n\nUse these workflows in combination for complex projects. For example:\n1. Explore data → 2. Write SQL → 3. Create visualization → 4. Validate → 5. Share\n","# Data Analysis Workflows\n\nComplete workflows for common data analysis tasks. Covers the full process from understanding requirements to delivering validated results.\n\n## Workflow 1: Answer Data Questions\n\nAnswer a data question, from a quick lookup to a full analysis to a formal report.\n\n### 1. Understand the Question\n\nParse the user's question and determine:\n\n- **Complexity level**:\n  - **Quick answer**: Single metric, simple filter, factual lookup (e.g., \"How many users signed up last week?\")\n  - **Full analysis**: Multi-dimensional exploration, trend analysis, comparison (e.g., \"What's driving the drop in conversion rate?\")\n  - **Formal report**: Comprehensive investigation with methodology, caveats, and recommendations (e.g., \"Prepare a quarterly business review of our subscription metrics\")\n- **Data requirements**: Which tables, metrics, dimensions, and time ranges are needed\n- **Output format**: Number, table, chart, narrative, or combination\n\n### 2. Gather Data\n\n**Options for data access:**\n\n1. Ask the user to provide data:\n   - Paste query results directly\n   - Upload a CSV or Excel file\n   - Describe the schema so you can write queries for them to run\n2. If writing queries for manual execution, use the \\`sql-queries\\` skill for dialect-specific best practices\n3. Once data is provided, proceed with analysis\n\n### 3. Analyze\n\n- Calculate relevant metrics, aggregations, and comparisons\n- Identify patterns, trends, outliers, and anomalies\n- Compare across dimensions (time periods, segments, categories)\n- For complex analyses, break the problem into sub-questions and address each\n\n### 4. Validate Before Presenting\n\nBefore sharing results, run through validation checks:\n\n- **Row count sanity**: Does the number of records make sense?\n- **Null check**: Are there unexpected nulls that could skew results?\n- **Magnitude check**: Are the numbers in a reasonable range?\n- **Trend continuity**: Do time series have unexpected gaps?\n- **Aggregation logic**: Do subtotals sum to totals correctly?\n\nIf any check raises concerns, investigate and note caveats.\n\n### 5. Present Findings\n\n**For quick answers:**\n- State the answer directly with relevant context\n- Include the query used (collapsed or in a code block) for reproducibility\n\n**For full analyses:**\n- Lead with the key finding or insight\n- Support with data tables and\u002For visualizations\n- Note methodology and any caveats\n- Suggest follow-up questions\n\n**For formal reports:**\n- Executive summary with key findings\n- Methodology section explaining approach and data sources\n- Detailed findings with supporting evidence\n- Caveats and limitations\n- Recommendations and next steps\n- Appendix with full queries and data tables\n\n---\n\n## Workflow 2: Explore and Profile Datasets\n\nGenerate a comprehensive data profile for a table or uploaded file. Understand its shape, quality, and patterns before diving into analysis.\n\n### 1. Access the Data\n\n**If a file is provided (CSV, Excel, Parquet, JSON):**\n1. Read the file and load into a working dataset\n2. If the file is large, sample it for profiling\n\n**If user describes a table:**\n1. Ask for sample data or schema information\n2. Generate profiling queries for the user to run\n\n### 2. Profile the Dataset\n\nGenerate a report covering:\n\n#### Basic Statistics\n- **Row count**: Total number of records\n- **Column count**: Number of fields\n- **Primary key**: Identify unique identifier(s)\n- **Grain**: One row per what? (user, order, event, etc.)\n- **Time range**: For temporal data, first and last dates\n\n#### Column-Level Analysis\n\nFor each column, report:\n- **Type**: String, integer, float, date, boolean, etc.\n- **Null rate**: Percentage of missing values\n- **Cardinality**: Number of unique values\n- **Sample values**: Examples of what the column contains\n- **Distribution**: For numeric columns, min\u002Fmax\u002Fmean\u002Fmedian\u002Fstd dev\n\n#### Data Quality Flags\n\nAutomatically identify potential issues:\n- High null rates (>10%)\n- Unexpected values (e.g., negative values in a count field)\n- Duplicate rows\n- Inconsistent formatting (mixed case, trailing spaces)\n- Time gaps in temporal data\n\n### 3. Recommend Next Steps\n\nBased on profiling results, suggest:\n- **High-value dimensions** to explore (columns with moderate cardinality, low nulls)\n- **Data quality issues** to address before analysis\n- **Potential relationships** to investigate (correlated columns, hierarchies)\n- **Analysis starting points** based on the data's structure\n\n---\n\n## Workflow 3: Write Optimized SQL\n\nWrite a SQL query from a natural language description, optimized for your specific SQL dialect and following best practices.\n\n### 1. Understand the Request\n\nParse the user's description to identify:\n\n- **Output columns**: What fields should the result include?\n- **Filters**: What conditions limit the data (time ranges, segments, statuses)?\n- **Aggregations**: Are there GROUP BY operations, counts, sums, averages?\n- **Joins**: Does this require combining multiple tables?\n- **Ordering**: How should results be sorted?\n- **Limits**: Is there a top-N or sample requirement?\n\n### 2. Determine SQL Dialect\n\nAsk the user which database they're using if not specified:\n- PostgreSQL \u002F Aurora \u002F Supabase\n- Snowflake\n- BigQuery\n- Databricks \u002F Spark SQL\n- Redshift\n- MySQL \u002F MariaDB\n\nEach dialect has syntax differences for date functions, string operations, and window functions.\n\n### 3. Write the Query\n\nUse CTEs (Common Table Expressions) for complex queries:\n\n\\`\\`\\`sql\nWITH base_data AS (\n  -- First CTE: Get the base dataset\n  SELECT ...\n),\naggregated AS (\n  -- Second CTE: Perform aggregations\n  SELECT ...\n)\n-- Final SELECT from CTEs\nSELECT * FROM aggregated;\n\\`\\`\\`\n\n**Best practices:**\n- Use explicit JOIN syntax (not implicit joins in WHERE clause)\n- Qualify all column names with table aliases when joining\n- Use meaningful CTE and alias names\n- Add comments explaining complex logic\n- Format for readability (indent, line breaks)\n- Consider performance (filter early, avoid SELECT *, use appropriate indexes)\n\n### 4. Add Context\n\nInclude with the query:\n- **Purpose**: One-line description of what the query does\n- **Tables used**: Which tables are referenced\n- **Performance notes**: Expected row counts, potential bottlenecks\n- **Dialect-specific notes**: Any syntax specific to the database being used\n\n---\n\n## Workflow 4: Create Visualizations\n\nCreate publication-quality data visualizations using Python. Generates charts from data with best practices for clarity, accuracy, and design.\n\n### 1. Understand the Request\n\nDetermine:\n\n- **Data source**: Query results, pasted data, CSV\u002FExcel file, or data to be queried\n- **Chart type**: Explicitly requested or needs to be recommended\n- **Purpose**: Exploration, presentation, report, dashboard component\n- **Audience**: Technical team, executives, external stakeholders\n\n### 2. Get the Data\n\nIf data is not yet provided:\n- Ask the user to paste data or upload a file\n- If querying is needed, use the SQL workflow to generate the query first\n\n### 3. Choose the Right Chart Type\n\nSelect visualization based on what you're showing:\n\n| What You're Showing | Best Chart | When to Use |\n|---------------------|------------|-------------|\n| **Trend over time** | Line chart | Continuous time series, shows change |\n| **Comparison across categories** | Bar chart | Comparing discrete categories |\n| **Part-to-whole** | Stacked bar \u002F Pie | Composition, relative sizes |\n| **Distribution** | Histogram \u002F Box plot | Understanding spread and outliers |\n| **Correlation** | Scatter plot | Relationship between two variables |\n| **Ranking** | Horizontal bar | Ordered list, easy to read labels |\n\n### 4. Generate Python Code\n\nUse \\`plotly\\` for interactive charts, \\`seaborn\\` or \\`matplotlib\\` for static charts.\n\n**Chart template pattern:**\n\n\\`\\`\\`python\nimport matplotlib.pyplot as plt\nimport pandas as pd\n\n# Load data\ndf = pd.DataFrame({...})\n\n# Create figure\nfig, ax = plt.subplots(figsize=(10, 6))\n\n# Plot\nax.plot(df['x'], df['y'])  # or .bar(), .scatter(), etc.\n\n# Style\nax.set_title('Clear, Descriptive Title', fontsize=14, fontweight='bold')\nax.set_xlabel('X Axis Label')\nax.set_ylabel('Y Axis Label')\nax.grid(axis='y', alpha=0.3)\n\n# Show\nplt.tight_layout()\nplt.show()\n\\`\\`\\`\n\n### 5. Apply Design Principles\n\n- **Clarity**: Remove chart junk, use clear labels\n- **Accuracy**: Don't truncate axes to exaggerate differences\n- **Accessibility**: Use colorblind-friendly palettes\n- **Context**: Add reference lines, annotations for key points\n\n---\n\n## Workflow 5: Build Interactive Dashboards\n\nBuild a self-contained interactive HTML dashboard with charts, filters, tables, and professional styling. Opens directly in a browser -- no server or dependencies required.\n\n### 1. Understand Dashboard Requirements\n\nDetermine:\n\n- **Purpose**: Executive overview, operational monitoring, deep-dive analysis, team reporting\n- **Audience**: Who will use this dashboard?\n- **Key metrics**: What numbers matter most?\n- **Dimensions**: What should users be able to filter or slice by?\n- **Data source**: Live query, pasted data, CSV file, or sample data\n\n### 2. Gather the Data\n\nIf data needs to be queried, use the SQL workflow.\nIf data is provided, ensure it's in a structured format (CSV or JSON).\n\n### 3. Design Dashboard Layout\n\nOrganize into sections:\n\n1. **Header**: Title, date range, key filters\n2. **KPI cards**: 3-5 big numbers that matter most\n3. **Primary charts**: 2-3 main visualizations (trends, comparisons)\n4. **Details section**: Tables or secondary charts for drill-down\n5. **Footer**: Methodology notes, data source, last updated\n\n### 4. Generate HTML\u002FJS Code\n\nUse this template structure:\n\n\\`\\`\\`html\n\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n\u003Chead>\n    \u003Cmeta charset=\"UTF-8\">\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>Dashboard Title\u003C\u002Ftitle>\n    \u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fchart.js@4.4.0\u002Fdist\u002Fchart.umd.min.js\">\u003C\u002Fscript>\n    \u003Cstyle>\n        \u002F* CSS styling *\u002F\n    \u003C\u002Fstyle>\n\u003C\u002Fhead>\n\u003Cbody>\n    \u003Cdiv class=\"container\">\n        \u003C!-- Dashboard content -->\n    \u003C\u002Fdiv>\n    \u003Cscript>\n        \u002F\u002F Data\n        const data = { \u002F* embed data here *\u002F };\n        \n        \u002F\u002F Charts\n        \u002F\u002F Filters\n        \u002F\u002F Interactivity\n    \u003C\u002Fscript>\n\u003C\u002Fbody>\n\u003C\u002Fhtml>\n\\`\\`\\`\n\n### 5. Add Interactivity\n\nImplement:\n- **Dropdown filters**: Filter by category, time range, segment\n- **Chart interactions**: Hover tooltips, click to drill-down\n- **Table sorting**: Click column headers to sort\n- **Dynamic updates**: Filters update all charts simultaneously\n\n---\n\n## Workflow 6: Validate Analysis Before Sharing\n\nReview an analysis for accuracy, methodology, and potential biases before sharing with stakeholders. Generates a confidence assessment and improvement suggestions.\n\n### 1. Review Methodology and Assumptions\n\nExamine:\n\n**Data selection:**\n- Which tables\u002Fsources were used? Are they the right ones?\n- What time range? Is it recent enough?\n- Any filters applied? Do they introduce bias?\n\n**Aggregation logic:**\n- Are groupings appropriate for the question?\n- Do subtotals match totals?\n- Are nulls handled correctly (excluded vs. counted as zero)?\n\n**Statistical methods:**\n- If using averages, is median more appropriate?\n- If comparing percentages, are denominators consistent?\n- If showing trends, is seasonality accounted for?\n\n### 2. Check for Common Pitfalls\n\n**Survivorship bias:**\n- Example: Analyzing only current customers excludes churned users\n- Check: Does the analysis need to include historical records?\n\n**Selection bias:**\n- Example: Survey responses from only power users\n- Check: Is the sample representative of the population?\n\n**Simpson's paradox:**\n- Example: Overall trend contradicts subgroup trends when aggregated\n- Check: Break down by segments before concluding\n\n**Correlation vs. causation:**\n- Example: Ice cream sales correlate with drowning deaths (both caused by summer)\n- Check: Are confounding variables at play?\n\n### 3. Sanity Check Results\n\nCompare results to expectations:\n\n- **Magnitude**: Are numbers in the right ballpark?\n- **Direction**: Do trends match known business context?\n- **Consistency**: Do related metrics tell the same story?\n\nIf something looks off:\n- Recheck the query\n- Look for data quality issues\n- Consider if external factors could explain it\n\n### 4. Assess Confidence Level\n\nRate confidence as:\n\n- **High confidence**: Methodology sound, results validated, limitations documented\n- **Medium confidence**: Minor concerns or caveats, but core findings are solid\n- **Needs more work**: Methodological issues or data quality problems need addressing\n\n### 5. Document Limitations\n\nEvery analysis has limits. Document:\n- What's excluded from the data\n- Assumptions made\n- Margin of error or uncertainty\n- Known data quality issues\n- Alternative interpretations\n\n**Example caveat:**\n> \"This analysis excludes trial users, which may overstate conversion rate by ~5pp compared to total signups.\"\n\n---\n\n## When to Use Each Workflow\n\n- **Answer Data Questions**: User has a specific question to answer\n- **Explore Datasets**: Encountering a new table or dataset\n- **Write SQL**: Need to generate queries for manual execution\n- **Create Visualizations**: Need charts for reports or presentations\n- **Build Dashboards**: Need interactive, shareable dashboards\n- **Validate Analysis**: Before sharing important findings with stakeholders\n\nUse these workflows in combination for complex projects. For example:\n1. Explore data → 2. Write SQL → 3. Create visualization → 4. Validate → 5. Share\n",{"name":5,"description":7},"main","18d0e63d1313ca87098f614aa7c1e2dcf6de79c7","backend\u002Fskills\u002Fmarketplace\u002Fcb_teams_marketplace\u002Fplugins\u002Fdata\u002Fskills\u002Fdata-analysis-workflows",1,"https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system","https:\u002F\u002Fgithub.com\u002Fwelflau","2026-11-10 11:14:25",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add welflau\u002Fai-dev-system --skill data-analysis-workflows",{"tool":65,"command":66},"bunx","bunx skills add welflau\u002Fai-dev-system --skill data-analysis-workflows",{"tool":68,"command":69},"pnpm","pnpm dlx skills add welflau\u002Fai-dev-system --skill data-analysis-workflows","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcb_teams_marketplace\u002Fplugins\u002Fdata\u002Fskills\u002Fdata-analysis-workflows\u002FSKILL.md",true,[],[74,106,135,160,186,210],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":78,"licenseFileUrl":79,"sourceHtmlUrl":80,"categories":81,"keywords":85,"publishedAt":47},"01M6HSTDP4M3JFXEBK91VFB4PA","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Fweb-artifacts-builder\u002FSKILL.md",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000009","前端开发",[86,87,88,89,90,91,92,93,94,95,96,97,98,99,41,100,101,102,103,104,105],"web artifacts builder","web","artifacts","artifacts builder","builder","frontend","css","components","react","routing","state management","state","file","Tailwind","single-file","simple","ui components","multi","for","single",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":78,"licenseFileUrl":110,"sourceHtmlUrl":111,"categories":112,"keywords":120,"publishedAt":47},"01M6HSDXH0JSP8R3QTNY9XZ8HN","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Ffrontend-design\u002FSKILL.md",[113,114,117],{"categoryNo":83,"categoryName":84,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":118,"categoryName":119,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000032","设计师",[91,121,122,92,87,93,94,123,124,125,88,126,127,128,41,129,130,131,132,133,134,33],"design","frontend design","react components","create","code","examples","applications","landing","ui design","pages","aesthetics","web ui","with","generic",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":78,"licenseFileUrl":139,"sourceHtmlUrl":140,"categories":141,"keywords":143,"publishedAt":47},"01M6HSA77QYVP7A72HREGTDN2C","algorithmic-art","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Falgorithmic-art\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fplugins\u002Falgorithmic-art\u002FSKILL.md",[142],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},[144,145,146,124,125,147,148,149,150,41,151,152,153,154,133,155,156,157,158,159,33],"algorithmic art","Art","algorithmic","flow","js","work","interactive","generative art","exploration","systems","users","Existing","request","generative","copyright","fields",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":78,"licenseFileUrl":164,"sourceHtmlUrl":165,"categories":166,"keywords":168,"publishedAt":47},"01M6HS9HE0X390Y6RQKTY1YNGJ","theme-factory","Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors\u002Ffonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Ftheme-factory\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Ftheme-factory\u002FSKILL.md",[167],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},[169,170,171,172,173,174,88,175,176,177,128,178,179,130,180,133,181,182,183,104,184,185],"theme factory","factory","theme","docs","toolkit","generate","SET","fly","slides","styling","artifact","themes","you","fonts","can","apply","new",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":195,"publishedAt":47},"01M6HS74GASM6FJ77F83EY679E","browsing","Use when you need direct browser control - teaches Chrome DevTools Protocol for controlling existing browser sessions, multi-tab management, form automation, and content extraction via use_browser MCP tool","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fsuperpowers-chrome\u002Fskills\u002Fbrowsing\u002FSKILL.md",[192],{"categoryNo":193,"categoryName":194,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[188,196,197,198,199,200,201,202,203,204,205,41,206,207,208,209,103,181,104,155],"MCP","automation","chrome","sessions","protocol","browser","devtools","chrome devtools","tool","direct","browser control","control","via","form",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":78,"licenseFileUrl":214,"sourceHtmlUrl":215,"categories":216,"keywords":223,"publishedAt":47},"01M6HS6BZT2CKDNQ6YF20DXN4T","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fwelflau\u002Fai-dev-system\u002Fblob\u002Fmain\u002Fbackend\u002Fskills\u002Fmarketplace\u002Fcodebuddy-plugins-official\u002Fexternal_plugins\u002Fslack-gif-creator\u002FSKILL.md",[217,220],{"categoryNo":218,"categoryName":219,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":221,"categoryName":222,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000016","图像与多媒体",[224,225,226,227,228,229,230,231,232,41,233,154,234,235,236,104,156,33],"slack gif creator","slack","gif","creator","validation","Tools","constraints","Animation","knowledge","me","make","Utilities","concepts"]