diff --git a/README.md b/README.md index 9db124d..e1d81cd 100644 --- a/README.md +++ b/README.md @@ -98,10 +98,11 @@ AUTH_CONFIG_FILE=/private/tmp/tabularium-auth/config.json AUTH_COOKIE_SECURE=fal 同一版本内容变化会拒绝导入,避免静默读取旧数据。回退代码时继续读取对应旧版本。 所有修改都经过工作分支和 PR,部署仍等待人工合并主线。 -当前资料包含 1,013 条公司/产品记录、10 类业务及待分类组、1,080 条证据记录和 148 条经营与技术观测。 -其中保留 69 家个案资料、928 条目录基础资料,并新增 16 个平台产品/业务样本;目录项不等于完成财务和技术核验。 +当前资料包含 1,015 条公司/产品记录、10 类业务及待分类组、1,086 条证据记录和 151 条经营与技术观测。 +其中保留 71 家个案资料、928 条目录基础资料,并新增 16 个平台产品/业务样本;目录项不等于完成财务和技术核验。 补充ThinkWheel与中国NaiveAI;MiroMind成立年未核,公开研发年份单列。保留灵初智能成立年排除、深度原理日期待核和Naive近名实体复核记录。 -新增7条Speedrun个案,保留标题/正文冲突、七位数数量级、币种不明、合同管线与履历归属排除记录;相对日期不充当同期收入时点。核查页优先按人工确认的公司ID关联明细,旧版本保留按证据归属回退;36条核查中25条指向具体公司、3条属于全局方法、8条是未纳入候选。明细反向列出关联核查;币种不明的声明保留原值,不绘制美元收入长度条。 +新增7条Speedrun个案,保留标题/正文冲突、七位数数量级、币种不明、合同管线与履历归属排除记录;相对日期不充当同期收入时点。核查页优先按人工确认的公司ID关联明细,旧版本保留按证据归属回退;39条核查中28条指向具体公司、3条属于全局方法、8条是未纳入候选。明细反向列出关联核查;币种不明的声明保留原值,不绘制美元收入长度条。 +Bud保留为2025成立且YC标记已收购的案例;Rocket.new按前身2021成立、2025产品上线的转型对照记录,历史ARR不混入新成立公司同期统计。 它是定向试样,收入披露不足且统计时点不统一,不代表全部 AI 公司。 界面将公司自述、第三方估算、融资、客户收入和履历收入分开,未知收入不记为零。 保留被撤回的声明作为核查记录,并排除收入比较;并购后业务、管理层预测与历史里程碑单列。 diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index ee20608..bc16b58 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -185,10 +185,10 @@ async function main() { assert.equal(researchResponse.status, 200, "authenticated research API"); assert.ok(researchResponse.headers.get("cache-control")?.includes("no-store")); const research = await researchResponse.json(); - assert.equal(research.companies.length, 1013); + assert.equal(research.companies.length, 1015); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 1080); - assert.equal(research.observations.length, 148); + assert.equal(research.evidence.length, 1086); + assert.equal(research.observations.length, 151); assert.equal((await request("/api/research/ai-companies", { method: "POST", headers })).status, 405); const researchPage = await request("/docs/other-research/ai-company-research/overview", { headers }); assert.equal(researchPage.status, 200); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 7482c48..dd7d894 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -23,9 +23,9 @@ test("research revisions share the authentication database and preserve replay l for (let i = 0; i < 20; i++) consumeCode(config, "invalid"); assert.equal(consumeCode(config, "invalid"), "limited"); const initial = readResearchSnapshot(); - assert.equal(initial.companies.length, 1013); - assert.equal(initial.evidence.length, 1080); - assert.equal(initial.observations.length, 148); + assert.equal(initial.companies.length, 1015); + assert.equal(initial.evidence.length, 1086); + assert.equal(initial.observations.length, 151); assert.deepEqual(readResearchSnapshot(), initial, "reopening does not duplicate records"); const db = openSiteDatabase(); const tables = db.prepare("SELECT name FROM sqlite_master WHERE type='table'").all() as { name: string }[]; @@ -62,7 +62,7 @@ test("research validation rejects broken evidence and unsafe source links", () = test("reviews link explicit companies without turning global or excluded cases into companies", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; - assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 25); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 28); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 3); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 8); const review = snapshot.reviews.find((r) => r.id === "R4")!; @@ -83,11 +83,11 @@ test("reviews link explicit companies without turning global or excluded cases i test("disclosure counts exclude client income, biographies, targets and duplicate milestones", () => { const snapshot = seed as ResearchSnapshot; const summary = categorySummary(snapshot); - assert.equal(summary.reduce((n, c) => n + c.count, 0), 1013); - assert.equal(summary.reduce((n, c) => n + c.self, 0), 16); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1015); + assert.equal(summary.reduce((n, c) => n + c.self, 0), 17); assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 1); assert.equal(summary.reduce((n, c) => n + c.platform, 0), 16); - assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 980); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 981); assert.equal(snapshot.companies.find((c) => c.name === "Rork")?.revenueStatus, "unknown"); assert.equal(snapshot.companies.find((c) => c.name === "Result")?.revenueStatus, "unknown"); assert.ok(snapshot.observations.filter((o) => o.selection === "signal").every((o) => o.scope === "公司整体")); @@ -127,6 +127,14 @@ test("ambiguous ARR claims retain currency, precision and attribution limits", ( assert.equal(codos.unit, "币种未注明"); assert.equal(codos.comparisonGroup, null); assert.ok(snapshot.observations.filter((o) => o.id.startsWith("SR-O-")).every((o) => o.comparisonGroup === null && o.unit !== "USD")); + assert.equal(snapshot.companies.find((c) => c.id === "AI071")?.year, 2021); + const rocket = snapshot.observations.find((o) => o.id === "ROCKET-O-arr")!; + assert.equal(rocket.selection, "historical"); + assert.equal(rocket.comparisonGroup, null); + assert.notEqual(rocket.scope, "公司整体"); + assert.equal(snapshot.companies.find((c) => c.id === "AI070")?.revenueStatus, "unknown"); + assert.equal(snapshot.observations.filter((o) => o.company === "AI070").length, 0, + "unreadable announcement summaries do not become numeric ARR"); }); // Retractions and forecasts must stay visible for review without becoming revenue signals. diff --git a/content/docs/ai-company-research/01-income-snapshot.md b/content/docs/ai-company-research/01-income-snapshot.md index eb7dabe..6073038 100644 --- a/content/docs/ai-company-research/01-income-snapshot.md +++ b/content/docs/ai-company-research/01-income-snapshot.md @@ -2,7 +2,7 @@ 截至 2026-10-30,7日窗口内有 14 个产品的美元平台MRR可纳入分组描述。创意软件订阅组的样本均值较高、CV也较大;营销软件组与消费者个人应用组的CV接近。各组只有1至5个产品,尚不足以估计行业总体或造假概率。 -这是已采集资料的固定快照。[动态工作台](/docs/other-research/ai-company-research/overview)提供筛选与原始证据。窗口按最后同步日计算,不保证所有点同日,也不是1,013条公司/产品记录的收入普查。 +这是已采集资料的固定快照。[动态工作台](/docs/other-research/ai-company-research/overview)提供筛选与原始证据。窗口按最后同步日计算,不保证所有点同日,也不是1,015条公司/产品记录的收入普查。 ## 7日窗口的分组结果 diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 9f03291..f15228c 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-30-review-links-1", + "version": "2026-10-30-cohorts-1", "asOf": "2026-10-30", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -28500,6 +28500,56 @@ "revenueStatus": "self", "classificationBasis": "按官方名录主营业务人工归类;行业标签不等于技术能力验证。", "businessModel": "收费与交付结构待进一步核验" + }, + { + "id": "AI070", + "name": "Bud(Orchids历史团队)", + "url": "https://www.ycombinator.com/companies/bud", + "cat": "C05", + "year": 2025, + "team": 6, + "location": "美国旧金山", + "business": "使用计算机、浏览器及跨任务工具执行知识工作;历史应用构建业务单列说明。", + "buyer": "知识工作者、开发者与小团队;实际客户构成未核验", + "delivery": "YC状态已收购;独立经营和产品当前可用性未核验", + "notes": "官方博客搜索索引显示团队加入Figma与Bud/Orchids停服公告,但正文503,本轮不确认交易条件或停服执行;不将缓存收入短句入数值表。不与个人助理Orchid合并。", + "cohort": "2025年成立;YC当前标记已收购", + "teamBasis": "YC Team Size为6;2026-10-30访问,业务截至日未知", + "price": "本轮未核验可用套餐与结算", + "stage": "YC状态已收购;独立经营和产品当前可用性未核验", + "sourceType": "公司官网与投资机构资料", + "evidenceIds": [ + "BUD-YC", + "BUD-CACHE" + ], + "revenueStatus": "unknown", + "classificationBasis": "按当前或最后公开主营归类,历史产品和业务边界另记。" + }, + { + "id": "AI071", + "name": "Rocket.new(DhiWise转型业务)", + "url": "https://www.rocket.new/blog/rocket-raises-15m-in-seed", + "cat": "C04", + "year": 2021, + "team": 50, + "location": "印度Surat / 美国Palo Alto", + "business": "从自然语言生成应用,并提供后端与部署;由DhiWise转型而来。", + "buyer": "知识工作者、开发者与小团队;实际客户构成未核验", + "delivery": "2025年公开新产品与融资;不属于2025—2026公司成立组", + "notes": "2025-09-23公告称团队50人,不是10月当前人数;ARR为历史产品里程碑,未确认前身全部业务边界、币种或经常性定义。", + "cohort": "2021年DhiWise前身成立;2025年Rocket产品上线对照", + "teamBasis": "2025-09-23创始人公告自述50人;非2026-10月人数", + "price": "本轮未核验可用套餐与结算", + "stage": "2025年公开新产品与融资;不属于2025—2026公司成立组", + "sourceType": "公司官网与投资机构资料", + "evidenceIds": [ + "ROCKET-ORIGIN", + "ROCKET-LAUNCH", + "ROCKET-ARR", + "ROCKET-ENTITY" + ], + "revenueStatus": "self", + "classificationBasis": "按当前或最后公开主营归类,历史产品和业务边界另记。" } ], "observations": [ @@ -30944,6 +30994,51 @@ "reason": "按评测方方法折算;不是公司收入、推理成本或毛利", "bound": "=", "comparisonGroup": null + }, + { + "id": "ROCKET-O-arr", + "company": "AI071", + "name": "Rocket.new", + "kind": "历史产品ARR", + "value": 4500000, + "unit": "原文$,币种待核", + "timing": "2025-06beta上线后三个月;约2025-09为推算月份,非原文精确截止日", + "evidence": "ROCKET-ARR", + "scope": "Rocket转型产品/业务", + "selection": "historical", + "reason": "转型产品历史里程碑,不能视为前身全部业务或2026当前公司ARR", + "bound": "=", + "comparisonGroup": null + }, + { + "id": "ROCKET-O-subscribers", + "company": "AI071", + "name": "Rocket.new", + "kind": "官方称付费订阅者", + "value": 10000, + "unit": "名订阅者", + "timing": "与历史ARR一并回顾,具体截止日未说明", + "evidence": "ROCKET-ARR", + "scope": "Rocket转型产品/业务", + "selection": "adoption", + "reason": "不是2026-10月活跃付费人数,也不假设等于去重客户", + "bound": ">", + "comparisonGroup": null + }, + { + "id": "ROCKET-O-funding", + "company": "AI071", + "name": "Rocket.new", + "kind": "本轮融资", + "value": 15000000, + "unit": "原文$,币种待核", + "timing": "2025-09-23公告", + "evidence": "ROCKET-LAUNCH", + "scope": "Rocket转型产品/业务", + "selection": "funding", + "reason": "本轮融资,不计入收入", + "bound": "=", + "comparisonGroup": null } ], "evidence": [ @@ -42826,6 +42921,72 @@ "kind": "评测方方法说明", "summary": "同文本成对音频、模型名隐藏后投票;原生音色榜与固定克隆音色榜分开。评分由成对偏好拟合,公布95%区间,榜单多次更新。", "limitation": "评测方声明不收取上榜或有利结果报酬;本轮未独立审计评测方。原生音色选择影响结果,英语偏好不能推广为全部语言、实时延迟或企业交付能力。" + }, + { + "id": "BUD-YC", + "companyId": "AI070", + "title": "Bud官方YC公司资料", + "url": "https://www.ycombinator.com/companies/bud", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司在YC的资料", + "summary": "YC列2025年成立、6人团队,状态Acquired,描述为可使用计算机的通用Agent。", + "limitation": "YC状态不能说明收购交易细节或当前产品是否仍提供;不证明收入。" + }, + { + "id": "BUD-CACHE", + "companyId": "AI070", + "title": "Bud官方博客索引中的团队与停服公告", + "url": "https://bud.app/blog", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "官方页面搜索索引,正文不可达", + "summary": "搜索索引显示团队加入Figma,Bud与Orchids计划于7月18日关闭;另有历史ARR短句。", + "limitation": "本轮正文返回503,只读到官方页面搜索索引;不据其确认停服执行或精确收入/日期,不导入数值ARR。" + }, + { + "id": "ROCKET-ORIGIN", + "companyId": "AI071", + "title": "Accel关于DhiWise成立的资料", + "url": "https://atoms.accel.com/news/dhiwise-a-surat-boys-dream-to-build-a-programming-platform-for-the-global-developer-community", + "publishedAt": "2022-12-13", + "accessedAt": "2026-10-30", + "kind": "投资机构资料", + "summary": "投资方在2022年文章记载DhiWise成立于2021年4月。", + "limitation": "投资方资料,非登记原件;用于前身成立,不将2025新产品上线改写为公司新成立。" + }, + { + "id": "ROCKET-LAUNCH", + "companyId": "AI071", + "title": "Rocket创始人融资与转型公告", + "url": "https://www.rocket.new/blog/rocket-raises-15m-in-seed", + "publishedAt": "2025-09-23", + "accessedAt": "2026-10-30", + "kind": "公司自述", + "summary": "创始人公告融资1500万(原文$)、50人团队,并称DhiWise为此前形态。", + "limitation": "募资不是收入;人数为公告时点自述,产品质量主张未独立测试。" + }, + { + "id": "ROCKET-ARR", + "companyId": "AI071", + "title": "Rocket官网历史ARR与付费订阅者说明", + "url": "https://www.rocket.new/blog/from-website-builders-to-live-site-on-rocket-new-in-an-hour", + "publishedAt": "2026-05-12", + "accessedAt": "2026-10-30", + "kind": "公司自述", + "summary": "文章回顾2025年6月beta上线后三个月达到450万ARR、超过1万付费订阅者。", + "limitation": "2026年更新的营销文章回顾历史,不能当作更新日当前收入;业务边界与币种待核,未审计。" + }, + { + "id": "ROCKET-ENTITY", + "companyId": "AI071", + "title": "Rocket与DhiWise官方主体联系", + "url": "https://www.rocket.new/ccpa", + "publishedAt": "2025-04-30", + "accessedAt": "2026-10-30", + "kind": "公司自述", + "summary": "官方隐私通知以DhiWise US Inc指代Rocket,并同时列dhiwise.com与rocket.new。", + "limitation": "仅用于公开品牌/主体联系,不据此认定所有地区法人同一成立日或收入合并范围。" } ], "reviews": [ @@ -43370,6 +43531,55 @@ "companyIds": [ "AI051" ] + }, + { + "id": "BUD-R-STATUS", + "type": "收购状态与访问限制", + "company": "Bud", + "summary": "YC直接标记已收购;官网博客仅搜索索引可读,包含团队加入Figma及停服计划。", + "evidenceIds": [ + "BUD-YC", + "BUD-CACHE" + ], + "handling": "保留2025成立公司;已收购状态单列,停服执行与金额待进一步核验,缓存ARR不入数值表。", + "scope": "companies", + "companyIds": [ + "AI070" + ] + }, + { + "id": "ROCKET-R-COHORT", + "type": "产品上线与公司成立", + "company": "Rocket.new / DhiWise", + "summary": "2025是Rocket产品上线年;投资方记录前身于2021年成立,官方说明两者联系。", + "evidenceIds": [ + "ROCKET-ORIGIN", + "ROCKET-LAUNCH", + "ROCKET-ENTITY", + "ROCKET-ARR" + ], + "handling": "作为2025发布/转型对照,排除2025—2026公司成立组;历史产品ARR不充当前身全部公司收入。", + "scope": "companies", + "companyIds": [ + "AI071" + ] + }, + { + "id": "BUD-R-NAME", + "type": "近名与历史品牌", + "company": "Bud / Orchids / Orchid", + "summary": "Bud官方索引联系到历史Orchids团队;YC另有2025年成立的iMessage个人助理Orchid,团队与产品不同。", + "evidenceIds": [ + "BUD-YC", + "BUD-CACHE", + "YC-E-30518" + ], + "handling": "Bud与YC30518分开,不借近名合并收入或经营状态;历史品牌与当前域名运营主体关系仍待补全文。", + "scope": "companies", + "companyIds": [ + "AI070", + "YC30518" + ] } ], "coverage": { diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index ad8b9c3..f9472ab 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-30-review-links-1", + "sourceVersion": "2026-10-30-cohorts-1", "asOf": "2026-10-30", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business",