← LeaderboardThe Skill Leaderboard

research-report

Summarize deep research results into markdown report, cover all fields, skip uncertain values.

Published by Weizhena ↗Weizhena/Deep-Research-skills

Try your first task

research-report

Start a fresh conversation.

Use research-report to turn the current workspace’s outline and research JSON results into a markdown report that covers every item, omits uncertain values, and includes applicable summary fields and other information.

    User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗

    SKILL.md

    name: research-reportdescription: Summarize deep research results into markdown report, cover all fields, skip uncertain values.

    Research Report - Summary Report

    Trigger

    /research-report

    Workflow

    Step 1: Locate Results Directory

    Find */outline.yaml in current working directory, read topic and output_dir config.

    Step 2: Scan Optional Summary Fields

    Read all JSON results, extract fields suitable for TOC display (numeric, short metrics), e.g.:

    • github_stars
    • google_scholar_cites
    • swe_bench_score
    • user_scale
    • valuation
    • release_date

    Use request_user_input to ask user:

    • Which fields to display in TOC besides item name?
    • Provide dynamic options list (based on actual fields in JSON)

    Step 3: Generate Python Conversion Script

    Generate generate_report.py in {topic}/ directory, script requirements:

    • Read all JSON from output_dir
    • Read fields.yaml to get field structure
    • Cover all field values from each JSON
    • Skip fields with values containing [uncertain]
    • Skip fields listed in uncertain array
    • Generate markdown report format: Table of contents (with anchor links + user-selected summary fields) + Detailed content (by field category)
    • Save to {topic}/report.md

    TOC Format Requirements:

    • Must include every item
    • Each item displays: number, name (anchor link), user-selected summary fields
    • Example: 1. [GitHub Copilot](#github-copilot) - Stars: 10k | Score: 85%

    Script Technical Requirements (Must Follow)

    1. JSON Structure Compatibility Support two JSON structures:

    • Flat structure: Fields directly at top level {"name": "xxx", "release_date": "xxx"}
    • Nested structure: Fields in category sub-dict {"basic_info": {"name": "xxx"}, "technical_features": {...}}

    Field lookup order: Top level -> category mapping key -> Traverse all nested dicts

    2. Category Multi-language Mapping fields.yaml category names and JSON keys can be any combination (CN-CN, CN-EN, EN-CN, EN-EN). Must establish bidirectional mapping:

    CATEGORY_MAPPING = {
        "Basic Info": ["basic_info", "Basic Info"],
        "Technical Features": ["technical_features", "technical_characteristics", "Technical Features"],
        "Performance Metrics": ["performance_metrics", "performance", "Performance Metrics"],
        "Milestone Significance": ["milestone_significance", "milestones", "Milestone Significance"],
        "Business Info": ["business_info", "commercial_info", "Business Info"],
        "Competition & Ecosystem": ["competition_ecosystem", "competition", "Competition & Ecosystem"],
        "History": ["history", "History"],
        "Market Positioning": ["market_positioning", "market", "Market Positioning"],
    }
    

    3. Complex Value Formatting

    • list of dicts (e.g., key_events, funding_history): Format each dict as one line, separate kv with |
    • Normal list: Short lists joined with comma, long lists displayed with line breaks
    • Nested dict: Recursive formatting, display with semicolon or line breaks
    • Long text strings (over 100 chars): Add line breaks <br> or use blockquote format for readability

    4. Extra Fields Collection Collect fields that exist in JSON but not defined in fields.yaml, put in "Other Info" category. Note to filter:

    • Internal fields: _source_file, uncertain
    • Nested structure top-level keys: basic_info, technical_features etc.
    • uncertain array: Display each field name on separate line, don't compress into one line

    5. Uncertain Value Skipping Skip conditions:

    • Field value contains [uncertain] string
    • Field name is in uncertain array
    • Field value is None or empty string

    Step 4: Execute Script

    Run python {topic}/generate_report.py

    Output

    • {topic}/generate_report.py - Conversion script
    • {topic}/report.md - Summary report