competitors-analysis

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Competitors Analysis

Competitors Analysis

Evidence-based competitor tracking and analysis. All analysis must be based on actual code, never assumptions.
Evidence-based competitor tracking and analysis. All analysis must be based on actual code, never assumptions.

CRITICAL: Evidence-Based Analysis Only

CRITICAL: Evidence-Based Analysis Only

在开始分析之前,必须完成以下检查:
Before starting the analysis, the following checks must be completed:

Pre-Analysis Checklist

Pre-Analysis Checklist

  • 仓库已克隆到本地
    ~/Workspace/competitors/{product}/
  • 可以
    ls
    查看目录结构
  • 可以
    cat package.json
    (或等效配置文件) 读取版本信息
  • 可以
    git log -1
    确认代码是最新的
如果以上任何一项未完成,停止分析,先完成克隆操作。
  • Repository has been cloned locally to
    ~/Workspace/competitors/{product}/
  • Can use
    ls
    to view the directory structure
  • Can use
    cat package.json
    (or equivalent configuration file) to read version information
  • Can use
    git log -1
    to confirm the code is up-to-date
If any of the above items are not completed, stop the analysis and complete the cloning operation first.

Forbidden Patterns (禁止的表述)

Forbidden Patterns (Prohibited Expressions)

禁止原因
"推测..."、"可能..."、"应该..."没有证据支持
"架构图(推测版)"必须基于实际代码
"未公开"、"未披露"如果不知道就不要写
不带来源的技术细节无法验证
ForbiddenReason
"Speculate...", "May...", "Should..."No evidence to support
"Architecture Diagram (Speculated Version)"Must be based on actual code
"Not disclosed", "Unrevealed"Do not write if unknown
Technical details without sourcesCannot be verified

Required Patterns (必须的表述)

Required Patterns (Mandatory Expressions)

正确格式示例
技术细节 + (来源: 文件:行号)"使用 better-sqlite3 (来源: package.json:88)"
直接引用 + 来源
> "description text" (README.md:3)
版本号 + 来源"版本 1.3.3 (package.json:2)"

Correct FormatExample
Technical details + (Source: File:Line Number)"Uses better-sqlite3 (Source: package.json:88)"
Direct quote + Source
> "description text" (README.md:3)
Version number + Source"Version 1.3.3 (Source: package.json:2)"

Analysis Workflow

Analysis Workflow

Step 1: Clone Repository (必须)

Step 1: Clone Repository (Mandatory)

bash
undefined
bash
undefined

创建产品竞品目录

Create product competitor directory

mkdir -p ~/Workspace/competitors/{product-name}
mkdir -p ~/Workspace/competitors/{product-name}

克隆竞品仓库 (SSH,失败则重试)

Clone competitor repository (SSH, retry if failed)

cd ~/Workspace/competitors/{product-name} git clone git@github.com:org/repo.git

**网络问题处理**: 中国网络环境可能需要多次重试。
cd ~/Workspace/competitors/{product-name} git clone git@github.com:org/repo.git

**Network Issue Handling**: Multiple retries may be required in the Chinese network environment.

Step 2: Gather Facts (收集事实)

Step 2: Gather Facts

按顺序读取以下文件,记录关键信息:
2.1 项目元数据
bash
undefined
Read the following files in order and record key information:
2.1 Project Metadata
bash
undefined

Node.js 项目

Node.js project

cat package.json | head -20 # name, version, description cat package.json | grep -A50 dependencies
cat package.json | head -20 # name, version, description cat package.json | grep -A50 dependencies

Python 项目

Python project

cat pyproject.toml # 或 setup.py, requirements.txt
cat pyproject.toml # or setup.py, requirements.txt

Rust 项目

Rust project

cat Cargo.toml

**2.2 项目结构**
```bash
ls -la                           # 根目录结构
ls src/                          # 源码目录
find . -name "*.md" -maxdepth 2  # 文档文件
2.3 核心模块
bash
undefined
cat Cargo.toml

**2.2 Project Structure**
```bash
ls -la                           # Root directory structure
ls src/                          # Source code directory
find . -name "*.md" -maxdepth 2  # Documentation files
2.3 Core Modules
bash
undefined

找到入口文件

Find entry file

cat main.js | head -50 # 或 index.js, app.py, main.rs
cat main.js | head -50 # or index.js, app.py, main.rs

找到核心 helpers/utils

Find core helpers/utils

ls src/helpers/ 2>/dev/null || ls src/utils/ 2>/dev/null

**2.4 README 和文档**
```bash
cat README.md | head -100        # 官方描述
cat CHANGELOG.md | head -50      # 版本历史
ls src/helpers/ 2>/dev/null || ls src/utils/ 2>/dev/null

**2.4 README and Documentation**
```bash
cat README.md | head -100        # Official description
cat CHANGELOG.md | head -50      # Version history

Step 3: Deep Dive (深入分析)

Step 3: Deep Dive

针对关键技术点,读取具体实现文件:
bash
undefined
For key technical points, read the specific implementation files:
bash
undefined

示例:分析 ASR 实现

Example: Analyze ASR implementation

cat src/helpers/whisper.js # 读取完整文件 grep -n "class.Manager" src/helpers/.js # 找到核心类

**记录格式**:
文件行号发现
whisper.js33-35使用 WhisperServerManager
undefined
cat src/helpers/whisper.js # Read full file grep -n "class.Manager" src/helpers/.js # Find core classes

**Recording Format**:
FileLine NumberFinding
whisper.js33-35Uses WhisperServerManager
undefined

Step 4: Write Profile (撰写分析)

Step 4: Write Profile

使用 references/profile_template.md 模板,确保每个技术细节都有来源标注。
Use the references/profile_template.md template to ensure every technical detail is sourced.

Step 5: Post-Analysis Verification (分析后验证)

Step 5: Post-Analysis Verification

自检清单:
  • 所有版本号都有来源标注?
  • 所有技术栈都来自 package.json/Cargo.toml?
  • 架构描述基于实际代码结构?
  • 没有"推测"、"可能"等词汇?
  • 对比表中的竞品数据都有来源?

Self-Check Checklist:
  • Are all version numbers sourced?
  • Is all tech stack information from package.json/Cargo.toml?
  • Is the architecture description based on actual code structure?
  • Are there no words like "speculate", "may", etc.?
  • Is all competitor data in comparison tables sourced?

Directory Structure

Directory Structure

~/Workspace/competitors/
├── flowzero/              # Flowzero 的竞品
│   ├── openwhispr/        # git clone 的仓库
│   └── ...
└── {product-name}/        # 其他产品

{project}/docs/competitors/
├── README.md              # 索引(标注分析状态)
├── profiles/
│   └── {competitor}.md    # 基于代码的分析
├── landscape/
├── insights/
└── updates/2026/

~/Workspace/competitors/
├── flowzero/              # Competitor for Flowzero
│   ├── openwhispr/        # Repository cloned via git clone
│   └── ...
└── {product-name}/        # Other products

{project}/docs/competitors/
├── README.md              # Index (marks analysis status)
├── profiles/
│   └── {competitor}.md    # Code-based analysis
├── landscape/
├── insights/
└── updates/2026/

Templates and Checklists

Templates and Checklists

文档用途
references/profile_template.md竞品分析报告模板
references/analysis_checklist.md分析前/中/后检查清单
关键要求:
  1. 顶部必须标注数据来源路径和 commit hash
  2. 每个技术细节必须有 (来源: 文件:行号)
  3. 引用 README 内容必须标注行号
  4. 无法验证的标记为"待验证"并说明原因
  5. 分析完成后运行检查清单中的验证命令

DocumentPurpose
references/profile_template.mdCompetitor analysis report template
references/analysis_checklist.mdPre-analysis/In-analysis/Post-analysis checklist
Key Requirements:
  1. Must mark the data source path and commit hash at the top
  2. Every technical detail must include (Source: File:Line Number)
  3. Quoted README content must include line numbers
  4. Unverifiable content must be marked as "Pending Verification" with reasons explained
  5. Run the verification commands in the checklist after completing the analysis

Tech Stack Analysis Guide

Tech Stack Analysis Guide

Node.js / JavaScript

Node.js / JavaScript

信息来源文件关键字段
版本package.json
version
依赖package.json
dependencies
,
devDependencies
入口package.json
main
,
scripts.start
框架package.jsonelectron, react, vite 等
InformationSource FileKey Field
Versionpackage.json
version
Dependenciespackage.json
dependencies
,
devDependencies
Entry Pointpackage.json
main
,
scripts.start
Frameworkpackage.jsonelectron, react, vite, etc.

Python

Python

信息来源文件关键字段
版本pyproject.toml
[project].version
依赖pyproject.toml / requirements.txt
dependencies
入口pyproject.toml
[project.scripts]
InformationSource FileKey Field
Versionpyproject.toml
[project].version
Dependenciespyproject.toml / requirements.txt
dependencies
Entry Pointpyproject.toml
[project.scripts]

Rust

Rust

信息来源文件关键字段
版本Cargo.toml
[package].version
依赖Cargo.toml
[dependencies]

InformationSource FileKey Field
VersionCargo.toml
[package].version
DependenciesCargo.toml
[dependencies]

Common Mistakes to Avoid

Common Mistakes to Avoid

1. 跳过克隆直接分析

1. Skipping Cloning and Analyzing Directly

❌ 错误: 从 GitHub 网页或 WebFetch 获取信息后直接写分析 ✅ 正确: 必须
git clone
到本地,用
Read
工具读取文件
❌ Wrong: Writing analysis directly after getting information from GitHub webpage or WebFetch ✅ Correct: Must
git clone
to local and use the
Read
tool to read files

2. 混合事实和推测

2. Mixing Facts and Speculations

❌ 错误:
markdown
undefined
❌ Wrong:
markdown
undefined

技术栈

Tech Stack

  • Electron (推测基于桌面应用特征)
  • 可能使用了 React

✅ 正确:
```markdown
  • Electron (Speculated based on desktop application features)
  • May have used React

✅ Correct:
```markdown

技术栈 (来源: package.json)

Tech Stack (Source: package.json)

依赖版本来源
electron36.9.5package.json:68
react19.1.0package.json:96
undefined
DependencyVersionSource
electron36.9.5package.json:68
react19.1.0package.json:96
undefined

3. 使用过时信息

3. Using Outdated Information

❌ 错误: 分析时不检查 git log,使用过时的代码 ✅ 正确: 分析前运行
git pull
,记录分析时的 commit hash
❌ Wrong: Not checking git log during analysis and using outdated code ✅ Correct: Run
git pull
before analysis and record the commit hash at the time of analysis

4. 对比表中竞品数据无来源

4. Competitor Data in Comparison Tables Without Sources

❌ 错误:
markdown
| 维度 | 竞品 | 我们 |
|------|------|------|
| 支持语言 | 25种 | 58种 |
✅ 正确:
markdown
| 维度 | 竞品 | 来源 | 我们 |
|------|------|------|------|
| 支持语言 | 25种 | modelRegistryData.json:9-35 | 58种 (FunASR 官方文档) |

❌ Wrong:
markdown
| Dimension | Competitor | Us |
|-----------|------------|----|
| Supported Languages | 25 | 58 |
✅ Correct:
markdown
| Dimension | Competitor | Source | Us |
|-----------|------------|--------|----|
| Supported Languages | 25 | modelRegistryData.json:9-35 | 58 (FunASR Official Documentation) |

Scripts

Scripts

See scripts/update-competitors.sh for repository management.
bash
./scripts/update-competitors.sh clone   # 克隆所有竞品
./scripts/update-competitors.sh pull    # 更新所有竞品
./scripts/update-competitors.sh status  # 检查状态
See scripts/update-competitors.sh for repository management.
bash
./scripts/update-competitors.sh clone   # Clone all competitors
./scripts/update-competitors.sh pull    # Update all competitors
./scripts/update-competitors.sh status  # Check status