Task Objective
- This Skill is used to: compare multiple technical options and provide recommendations, or recommend suitable technical solutions based on project requirements
- Capabilities include: intelligently identifying technology types, dynamically selecting comparison dimensions, and generating structured reports
- Trigger conditions: the user mentions keywords such as "compare", "vs", "selection", etc., or describes project requirements (such as "I want to develop a cross-platform application")
Operation Steps
1. Understand Requirements
- Identify Technology List: Clarify the technologies the user wants to compare (1, 2, or more)
- In-Depth Analysis of a Single Technology: If the user provides only a single technology (such as "I want to use SolidJS, how is it?"), then:
- Analyze its core advantages, typical scenarios, and potential limitations
- Recommend 2-3 similar competing products for reference and briefly explain the differences
- Still output in the complete report format (the table may have only one column)
- Recommendation Based on Requirements: If the user does not explicitly list technologies but describes project goals, first recommend 2-4 mainstream candidate technologies and confirm
- Technology Type Identification:
- Identify the technology type (frontend framework, backend language/framework, database, deployment solution, etc.)
- If the technologies provided by the userdo not belong to the same category(such as Java vs Docker), first clarify the requirement: "Do you want to compare backend languages (such as Java vs Go) or deployment solutions (such as Docker vs Podman)?"
- Sub-ecosystem Classification Rules: If the technology mentioned by the user belongs to a sub-ecosystem (such as Next.js, Nuxt.js, Remix), first classify it under its main technology stack (React/Vue), and additionally consider SSR/SSG-specific dimensions
2. Dynamically Determine Comparison Dimensions
Intelligently select applicable dimensions based on the technology type, refer to references/comparison-dimensions.md
- Frontend frameworks: learning curve, performance, ecosystem, community activity, TypeScript support
- Backend frameworks: performance, development efficiency, ecosystem, learning curve, applicable scenarios
- Databases: data model, performance, scalability, consistency, applicable scenarios
- Deployment solutions: performance, resource usage, package size, cross-platform support
- General dimensions: long-term maintainability, enterprise adoption, learning curve
3. Information Retrieval and Analysis
Conduct comparative analysis based on the knowledge base:
- Knowledge Cutoff Time: This report is based on information as ofthe end of 2024public technical materials
- Data Priority: Prioritize long-term stable sources (official documentation, GitHub repositories, MDN), and cautiously cite annual surveys (such as State of JS 2023) while noting their timeliness
- Information Retrieval Stage:
- First stage: quickly obtain an overview of each technology and form a preliminary comparison draft
- Second stage: conduct in-depth analysis of key differences, supplementing details, benchmark data, or authoritative references
- Data Sources: official documentation, GitHub activity, npm trends, benchmark reports, etc.
- If the information is insufficient or the data may be outdated, clearly indicate "recommend querying the latest data"
4. Generate a structured report
Follow the references/output-template.md format for output:
- Knowledge cutoff statement: The beginning of the report must include a data timeliness note
- 📊 Comparison table: Use a Markdown table, with a fixed column order, and use "—" or "requires coordination with other tools" for missing values
- 📖 Analysis and explanation: 2-4 paragraphs explaining the key differences, underlying reasons, and applicable scenarios, avoiding overpromising
- 💡 Recommendations and risk notes: Give specific recommendations based on user needs, and list potential risks
- 📈 Visualization (optional): Use Mermaid to draw simple charts (ecosystem comparison, performance trends)
- 🔗 References: List all cited sources (at least 3 reliable sources), prioritizing official documentation, GitHub, and MDN
Output specifications
- Language: Chinese, professional but easy to understand
- Avoid subjective speculation; all views must be supported by evidence
- If a technology does not involve a certain dimension, mark it as "not applicable" or "—" rather than leaving it blank
- The table has a fixed column order to ensure readability
- Do not claim "faster performance"; instead say "benchmark tests show better performance in XX scenarios"
- Mark data timeliness and recommend that users verify the latest information
Resource index
- Dimension library: see references/comparison-dimensions.md(comparison dimensions and typical keywords categorized by technology type)
- Output template: see references/output-template.md(complete report format template and Mermaid chart examples)
Notes
- Read reference documents only when needed to keep the context concise
- When information is insufficient, clearly state "there is currently a lack of authoritative data" rather than guessing
- Maintain a neutral stance and objectively present the pros and cons of each technology
- Mark the knowledge cutoff time (end of 2024) and recommend that users verify the latest information
- Make full use of the agent's knowledge base and analytical capabilities, and avoid writing scripts for simple tasks
- When handling vague input, proactively clarify the user's real needs
- Provide risk notes to help users fully understand potential issues with the technology
Usage examples
Example 1: Front-end framework comparison
User input: "Help me compare React, Vue, and Svelte. I want to build a high-performance single-page application."
Execution method:
- Identify it as a front-end framework comparison
- Dynamically select dimensions: performance, learning curve, ecosystem, TypeScript support, community activity
- Generate a comparison table and analysis based on knowledge
- Give recommendations based on the user's "high-performance single-page application" need, and note the risk that Svelte's ecosystem is smaller
Example 2: Sub-ecosystem classification
User input: "Which is better for SEO, Next.js or Nuxt.js?"
Execution method:
- Identify it as a front-end framework comparison (SSR frameworks), classified under the main technology stacks React vs Vue
- Additionally consider dimensions specific to SSR/SSG
- Select dimensions: SSR/SSG capabilities, SEO support, ecosystem, learning curve
- Generate a comparison table and analysis
- Make a clear recommendation based on the user's "SEO-friendly" need
Example 3: In-depth analysis of a single technology
User input: "I want to use SolidJS, how is it?"
Execution method:
- Identified as single-technology in-depth analysis
- Analyze SolidJS's core advantages (fine-grained reactivity), typical scenarios (high-performance applications), and potential limitations (smaller ecosystem)
- Recommended competitors: React (rich ecosystem), Vue (low learning curve), Svelte (compile-time optimization), with a brief explanation of the differences
- Generate report (single-column table)
Example 4: Cross-platform deployment solution
User input: "I plan to develop a cross-platform desktop application. Which is better: Electron, Tauri, or Neutralino?"
Execution method:
- Identified as deployment solution comparison
- Selection dimensions: performance, resource usage, package size, cross-platform support, ecosystem
- Generate comparison table and detailed analysis
- Give recommendations based on user needs, and note the risk of Electron's high resource usage
Example 5: Backend framework comparison
User input: "I just want to understand Python web frameworks: what are the differences between Django, Flask, and FastAPI?"
Execution method:
- Identified as backend framework comparison
- Selection dimensions: applicable scenarios, development efficiency, performance, learning curve
- Generate comparison table and analysis
- Provide general selection advice
Example 6: Ambiguous input handling
User input: "Compare Java and Docker"
Execution method:
- Detected that the technologies do not belong to the same category (language vs container)
- Clarify the requirement: "Do you want to compare backend languages (such as Java vs Go) or deployment solutions (such as Docker vs Podman)?"
- Wait for user confirmation before continuing the analysis