competitors-analysis
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCompetitors 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 to view the directory structure
ls - Can use (or equivalent configuration file) to read version information
cat package.json - Can use to confirm the code is up-to-date
git log -1
If any of the above items are not completed, stop the analysis and complete the cloning operation first.
Forbidden Patterns (禁止的表述)
Forbidden Patterns (Prohibited Expressions)
| 禁止 | 原因 |
|---|---|
| "推测..."、"可能..."、"应该..." | 没有证据支持 |
| "架构图(推测版)" | 必须基于实际代码 |
| "未公开"、"未披露" | 如果不知道就不要写 |
| 不带来源的技术细节 | 无法验证 |
| Forbidden | Reason |
|---|---|
| "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 sources | Cannot be verified |
Required Patterns (必须的表述)
Required Patterns (Mandatory Expressions)
| 正确格式 | 示例 |
|---|---|
| 技术细节 + (来源: 文件:行号) | "使用 better-sqlite3 (来源: package.json:88)" |
| 直接引用 + 来源 | |
| 版本号 + 来源 | "版本 1.3.3 (package.json:2)" |
| Correct Format | Example |
|---|---|
| Technical details + (Source: File:Line Number) | "Uses better-sqlite3 (Source: package.json:88)" |
| Direct quote + Source | |
| 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
undefinedbash
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
undefinedRead the following files in order and record key information:
2.1 Project Metadata
bash
undefinedNode.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
undefinedcat Cargo.toml
**2.2 Project Structure**
```bash
ls -la # Root directory structure
ls src/ # Source code directory
find . -name "*.md" -maxdepth 2 # Documentation files2.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 historyStep 3: Deep Dive (深入分析)
Step 3: Deep Dive
针对关键技术点,读取具体实现文件:
bash
undefinedFor 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.js | 33-35 | 使用 WhisperServerManager |
undefinedcat src/helpers/whisper.js # Read full file
grep -n "class.Manager" src/helpers/.js # Find core classes
**Recording Format**:| File | Line Number | Finding |
|---|---|---|
| whisper.js | 33-35 | Uses WhisperServerManager |
undefinedStep 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 | 分析前/中/后检查清单 |
关键要求:
- 顶部必须标注数据来源路径和 commit hash
- 每个技术细节必须有 (来源: 文件:行号)
- 引用 README 内容必须标注行号
- 无法验证的标记为"待验证"并说明原因
- 分析完成后运行检查清单中的验证命令
| Document | Purpose |
|---|---|
| references/profile_template.md | Competitor analysis report template |
| references/analysis_checklist.md | Pre-analysis/In-analysis/Post-analysis checklist |
Key Requirements:
- Must mark the data source path and commit hash at the top
- Every technical detail must include (Source: File:Line Number)
- Quoted README content must include line numbers
- Unverifiable content must be marked as "Pending Verification" with reasons explained
- 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 | |
| 依赖 | package.json | |
| 入口 | package.json | |
| 框架 | package.json | electron, react, vite 等 |
| Information | Source File | Key Field |
|---|---|---|
| Version | package.json | |
| Dependencies | package.json | |
| Entry Point | package.json | |
| Framework | package.json | electron, react, vite, etc. |
Python
Python
| 信息 | 来源文件 | 关键字段 |
|---|---|---|
| 版本 | pyproject.toml | |
| 依赖 | pyproject.toml / requirements.txt | |
| 入口 | pyproject.toml | |
| Information | Source File | Key Field |
|---|---|---|
| Version | pyproject.toml | |
| Dependencies | pyproject.toml / requirements.txt | |
| Entry Point | pyproject.toml | |
Rust
Rust
| 信息 | 来源文件 | 关键字段 |
|---|---|---|
| 版本 | Cargo.toml | |
| 依赖 | Cargo.toml | |
| Information | Source File | Key Field |
|---|---|---|
| Version | Cargo.toml | |
| Dependencies | Cargo.toml | |
Common Mistakes to Avoid
Common Mistakes to Avoid
1. 跳过克隆直接分析
1. Skipping Cloning and Analyzing Directly
❌ 错误: 从 GitHub 网页或 WebFetch 获取信息后直接写分析
✅ 正确: 必须 到本地,用 工具读取文件
git cloneRead❌ Wrong: Writing analysis directly after getting information from GitHub webpage or WebFetch
✅ Correct: Must to local and use the tool to read files
git cloneRead2. 混合事实和推测
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)
| 依赖 | 版本 | 来源 |
|---|---|---|
| electron | 36.9.5 | package.json:68 |
| react | 19.1.0 | package.json:96 |
undefined| Dependency | Version | Source |
|---|---|---|
| electron | 36.9.5 | package.json:68 |
| react | 19.1.0 | package.json:96 |
undefined3. 使用过时信息
3. Using Outdated Information
❌ 错误: 分析时不检查 git log,使用过时的代码
✅ 正确: 分析前运行 ,记录分析时的 commit hash
git pull❌ Wrong: Not checking git log during analysis and using outdated code
✅ Correct: Run before analysis and record the commit hash at the time of analysis
git pull4. 对比表中竞品数据无来源
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