From c6e5a7b05fad866e7b250c30f387e43aed4cbbfd Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:28:03 +0800 Subject: [PATCH 01/11] Complete Product Hunt All snapshot and classify StoreClaw --- apps/docs/scripts/auth-cli.ts | 4 +- apps/docs/tests/research.test.ts | 16 +- content/research/ai-companies.seed.json | 786 ++++++++++++++++++++- content/research/ai-companies.sources.json | 10 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 801 insertions(+), 17 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 7ce421e..0294d5a 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -182,9 +182,9 @@ 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, 1196); + assert.equal(research.companies.length, 1197); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4600); + assert.equal(research.evidence.length, 4632); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 62b8d03..95c0285 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -104,8 +104,8 @@ 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, 1196); - assert.equal(initial.evidence.length, 4600); + assert.equal(initial.companies.length, 1197); + assert.equal(initial.evidence.length, 4632); assert.equal(initial.observations.length, 453); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); @@ -145,8 +145,8 @@ 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, 207); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 139); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 208); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 141); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 44); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); @@ -166,11 +166,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), 1196); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1197); assert.equal(summary.reduce((n, c) => n + c.self, 0), 58); assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 2); assert.equal(summary.reduce((n, c) => n + c.platform, 0), 19); - assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1117); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1118); 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 === "公司整体")); @@ -205,7 +205,7 @@ test("service run rates, legacy freight revenue and paid adoption do not become test("technical reviews keep accessible materials separate from tested capabilities", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; - assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 181); + assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 182); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 25); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1); assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown"); @@ -487,7 +487,7 @@ test("unreconciled directory financials remain source reviews instead of income assert.ok(review.evidenceIds.includes("PH-TANA-DR")); assert.equal(reviewCompanyIds(snapshot, review).length, 0); assert.ok(!snapshot.observations.some((o) => o.evidence === "PH-TANA-DR")); - assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 125); + assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 131); }); test("product pivots and founder histories do not become new company years or current revenue", () => { diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index c2905bd..1938853 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ph-all25-1", + "version": "2026-10-31-ph-all26-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -37607,6 +37607,46 @@ "YCAIRE12-HEVN-YCJOB" ] } + }, + { + "id": "AI105", + "name": "StoreClaw", + "url": "https://www.storeclaw.ai/", + "channel": "S04", + "cat": "C07", + "year": 2026, + "team": null, + "location": null, + "business": "以第三方LLM执行电商数据分析、商品/库存/广告与内容运营任务,提供Skills、连接器与定时自动化。", + "buyer": "跨境及多平台电商卖家、店铺运营团队", + "delivery": "托管AI应用及电商连接器;操作须按用户授权,输出需人审,推理与连接器维护成本待核", + "notes": "官网用户/卖家/合作及客户店铺收益不当自身付费或营收;年费折扣、赠送/日刷/月积分和充值分开,不从报价推ARR。24/7自主与效果均公司描述。", + "cohort": "官网About明确2026 FOUNDED;非仅2026产品发布或版权,精确登记及旧业务沿革仍未独立核", + "teamBasis": "未取得当前全员精确数,不从用户数/模块数推团队规模", + "price": "USD月付Pro19.9/Max39.9/Ultra199.9,分别6000/12000/60000月积分;另日刷额度、注册赠额、充值及团队定制,实际订单/版本待核", + "stage": "官网/条款/公开价卡可读,有免费及升级入口;实际付费数量、交付规模和独立效果未核", + "sourceType": "官方About、条款、价表及产品发布平台", + "evidenceIds": [ + "PHALL26-STORE-PH", + "PHALL26-STORE-HOME", + "PHALL26-STORE-ABOUT", + "PHALL26-STORE-TERMS", + "PHALL26-STORE-PRICE" + ], + "revenueStatus": "unknown", + "businessModel": "软件订阅含AI额度,另充值及团队计划;推理/工具/支持成本和净经常性收入待核", + "entityBasis": "官网条款自述StoreClaw Inc. Delaware;非独立登记或集团沿革核验", + "classificationBasis": "按电商垂直运营AI应用归C07;第三方LLM不作自研基础模型,用户店铺GMV/广告预算不归平台收入", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-10-31", + "summary": "官网/合同明确第三方LLM电商Agent、用户授权与定时任务;未运行模型或独立验证。", + "evidenceIds": [ + "PHALL26-STORE-HOME", + "PHALL26-STORE-TERMS", + "PHALL26-STORE-ABOUT" + ] + } } ], "observations": [ @@ -95326,6 +95366,358 @@ "kind": "产品发布平台/公司原始资料补核", "summary": "官网反链Terms本次浏览读取超时,未取得实质条文。", "limitation": "不据时间错误推停业或没有合同;运营者与成立年份仍缺,保留访问缺项,不以第三方对近名产品的日期补齐。" + }, + { + "id": "PHALL26-BASE-PH", + "companyId": null, + "title": "Base44 Backend对应既有公司", + "url": "https://www.producthunt.com/products/base44", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "年度Backend卡指向Base44共用产品页与base44.com,页内区分2025原版与2026 Backend发布。", + "limitation": "新产品/后台服务不另算新公司或复制ARR,关联已有AI056;用户自建应用和同页其他作品不当Base44收入。" + }, + { + "id": "PHALL26-ACTI-PH", + "companyId": null, + "title": "Acti移动键盘产品发现", + "url": "https://www.producthunt.com/products/acti-2", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "2026发布的意图识别/行动键盘,反链openacti.com。", + "limitation": "发布年非公司成立,Free平台标签非无商业化;示例操作/用户评价不作实绩,主体年份待核。" + }, + { + "id": "PHALL26-FATHOM-PH", + "companyId": null, + "title": "Fathom3.0旧产品更新", + "url": "https://www.producthunt.com/products/fathom", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "同域Fathom会议记录产品,历史列2021原版、2023和2026更新。", + "limitation": "按既有业务排除新成立样本,精确登记未核;3.0与收购/更名不重置公司年,不迁集团收入。" + }, + { + "id": "PHALL26-TENCENT-PH", + "companyId": null, + "title": "Tencent EdgeOne Makers对应集团平台", + "url": "https://www.producthunt.com/products/tencent-edgeone-2", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Makers卡指向Tencent EdgeOne共页,官网edgeone.ai,2025原发布与2026 Makers更新分开。", + "limitation": "新托管功能不另算2026公司;AI/智能路由标签不自动代表自有模型,集团收入不归此功能。" + }, + { + "id": "PHALL26-VIKTOR-PH", + "companyId": null, + "title": "Viktor工作Agent产品发现", + "url": "https://www.producthunt.com/products/viktor", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "2026发布的Slack/Teams工作Agent,同页评价提原Zeta Labs/Jace团队,官网为viktor.com。", + "limitation": "推荐者/顾问评价非独立性能或付费验证,不能因产品发布重算公司成立,旧产品与现主体需核。" + }, + { + "id": "PHALL26-SPIRA-PH", + "companyId": null, + "title": "Spira Maxima与Spira共用产品页", + "url": "https://www.producthunt.com/products/spira-ai", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Maxima卡指向Spira AI,页面列社交内容Agent、2026原发布与Maxima更新,官网spira.ai。", + "limitation": "一个品牌的多次发布不算多个公司,团队旧大厂履历/展示量非公司收入,成立与独立主体待核。" + }, + { + "id": "PHALL26-CODITY-PH", + "companyId": null, + "title": "Codity代码智能产品发现", + "url": "https://www.producthunt.com/products/codity", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "2026平台发布,反链codity.ai,代码上下文/评审智能工具。", + "limitation": "发布非成立,评论/票数非实际ARR或独立技术测试,不与codity.tech/codity.lt近名公司合并。" + }, + { + "id": "PHALL26-STORE-PH", + "companyId": "AI105", + "title": "StoreClaw电商AI Agent发现", + "url": "https://www.producthunt.com/products/storeclaw", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "平台反链storeclaw.ai,电商数据分析、建议与用户批准后执行任务。", + "limitation": "产品发布不单独证成立,官网独立About及条款另补;平台免费选项与顾客店铺销售不作平台收入。" + }, + { + "id": "PHALL26-POLLY-PH", + "companyId": null, + "title": "PollyReach个人电话Agent发现", + "url": "https://www.producthunt.com/products/pollyreach", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "产品反链pollyreach.ai,个人电话预约/接听/转录等AI任务。", + "limitation": "2026平台发布不是公司成立;Free标签不等零收入或电话成本,未拨号/开户/下单。" + }, + { + "id": "PHALL26-ACTI-HOME", + "companyId": null, + "title": "Acti当前多端任务软件", + "url": "https://openacti.com/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官网由移动键盘扩至桌面/语音、连接工具和可复用Acts行动,列安装和媒体入口。", + "limitation": "仅读产品/页脚相关段落非1277行完整逐项核查;下载/Skills榜单非付费,旧Facemoji或媒体提及不作公司收入/成立证明。" + }, + { + "id": "PHALL26-ACTI-TERMS", + "companyId": null, + "title": "Acti TypeX合同与第三方模型/收费", + "url": "https://openacti.com/terms/", + "publishedAt": "2026-10-02", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "条款运营者TypeX Limited及关联方,AI任务依赖第三方LLM;含免费与付费订阅、内部Credits,月AI额度不结转,价格购买前展示。", + "limitation": "自述主体不替注册或成立年,PH Free不推全部免费;含推理/商店渠道成本,未给实际收入,未安装产品/连接账户。" + }, + { + "id": "PHALL26-FATHOM-HOME", + "companyId": null, + "title": "Fathom会议知识服务连续性", + "url": "https://www.fathom.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "同域当前会议记录/摘要与对话知识查询,个人/团队产品和价表入口,与平台旧发布连续。", + "limitation": "当前3.0功能/集团关系不当新公司年,未验证采集效果或已付费人数;会议客户收入/所节省时间非平台收入。" + }, + { + "id": "PHALL26-TENCENT-HOME", + "companyId": null, + "title": "EdgeOne Makers为现平台组成", + "url": "https://edgeone.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Tencent EdgeOne官网将Makers列为Edge Developer Platform, alongside边缘函数、网络安全及加速服务。", + "limitation": "平台新增功能非独立公司,未逐项核云套餐/AI模型,免费额度或用户部署应用收入不当腾讯该产品ARR。" + }, + { + "id": "PHALL26-TENCENT-GROUP", + "companyId": null, + "title": "腾讯官方公司沿革", + "url": "https://www.tencent.com/en-us/about.html.html", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "腾讯官方About自述1998成立、深圳总部,集团提供云及企业服务。", + "limitation": "集团沿革用于排新公司,不替具体承约子法人精确登记,集团规模/收入不转移Makers。" + }, + { + "id": "PHALL26-VIKTOR-HOME", + "companyId": null, + "title": "Viktor当前企业工作Agent", + "url": "https://viktor.com/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官网为Slack/Teams中的AI员工、共享上下文和执行工具,列大量团队使用自述。", + "limitation": "团队使用/客户Logo不等付费或独立效度,演示中的签约金额/报表不是自身收入;不执行外部操作。" + }, + { + "id": "PHALL26-VIKTOR-TERMS", + "companyId": null, + "title": "Viktor Zeta AI合同主体", + "url": "https://viktor.com/legal/general-terms", + "publishedAt": "2026-07-31", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "现行通用条款承约自述为Delaware Zeta AI Inc.,商业名Viktor;trust反链zetalabs.ai。", + "limitation": "合同主体与2024 Zeta Labs发布增强业务沿革,但法律实体转换/登记未核;不以2026产品上线算新创业。仅读主体/版本相关段落。" + }, + { + "id": "PHALL26-VIKTOR-PRICE", + "companyId": null, + "title": "Viktor工作区订阅与额度分开", + "url": "https://viktor.com/pricing", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Team原$100/月含40000每月共享积分,按工作区非人头;月积分可结转一个月,试用/赠额不失效,可额外充值,称模型工作来自第三方。", + "limitation": "原$币种及实际订单另核,赠送额度非现金/收入。月套餐/充值/模型成本需拆分,演示客户订单和76K使用团队不推平台ARR。" + }, + { + "id": "PHALL26-VIKTOR-HISTORY", + "companyId": null, + "title": "Zeta Labs2024原始发布与旧年冲突", + "url": "https://www.prnewswire.com/news-releases/zeta-labs-raises-2-9m-pre-seed-funding-launches-jace---first-ai-agent-capable-of-complex-task-completion-302171252.html", + "publishedAt": "2024-06-13", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Zeta Labs公司稿称2024成立、Fryderyk Wiatrowski/Peter Albert推出JACE并融资290万,2025前已有Agent事业;现Viktor通用条款反链Zeta。", + "limitation": "公司稿是自述非独立新闻/登记,与行业会议目录2023字段不同,两者均非本次新公司期;主体转换仍缺,不将融资/旧功能/收入迁当前产品。" + }, + { + "id": "PHALL26-SPIRA-HOME", + "companyId": null, + "title": "Spira生成发布软件与未定稿页面", + "url": "https://spira.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "当前生成/发布社交内容Agent与第三方模型入口,电商模式标Soon,FAQ有Placeholder及确认真实工作流后上线字样。", + "limitation": "明确AI任务但实际功能/当前可交付性需逐项核,页面占位不证明产品全未上线或停业;创始人旧团队/展示量不作ARR,成立待原始证据。" + }, + { + "id": "PHALL26-SPIRA-TERMS", + "companyId": null, + "title": "Spira创作者平台合同与净费", + "url": "https://spira.ai/terms-of-service", + "publishedAt": "2026-07-26", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "条款生效2026-01-01,更新7月26;称Spira AI为连接品牌与创作者平台,列订阅、活动预算/创作者佣金及平台费,预算托管后付创作者。", + "limitation": "未给清晰法人名/成立登记,条款与当前自主内容产品的适用版本待核;广告预算/创作者佣金非全部平台收入,不能按条款日期补公司成立年。仅读主体/收费相关段落。" + }, + { + "id": "PHALL26-CODITY-HOME", + "companyId": null, + "title": "Codity当前AI代码评审任务", + "url": "https://codity.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官网明确AI评审/修复/上下文和安全扫描,CLI/插件及模型评估入口。", + "limitation": "未运行CLI/扫描/渗透测试或独立评测,客户案例/合规Logo非独立验证;产品AI任务明确但成立/旧业务链待核。" + }, + { + "id": "PHALL26-CODITY-ABOUT", + "companyId": null, + "title": "Codity美国与印度运营者", + "url": "https://codity.ai/about", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官网创始人Chaitanya Tyagi/Shree Iyengar,列Ekaha Labs Inc.美国及Ekaha Labs Private Limited印度办公地。", + "limitation": "法人与办公地来自公司自述非独立登记,不重复计两个公司,不由地址/版权推成立年,团队无可核精确人数。" + }, + { + "id": "PHALL26-CODITY-TERMS", + "companyId": null, + "title": "Codity合同历史及第三方依赖", + "url": "https://codity.ai/terms-and-conditions", + "publishedAt": "2025-11-25", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "条款列Codity服务、同美印Ekaha主体,依赖OpenAI/Anthropic/xAI等上游服务,企业SLA按签约另定。", + "limitation": "文档日期不作成立;上游模型依赖非自研基础模型,SLA目标不当实测,不执行自动扫描/benchmark。" + }, + { + "id": "PHALL26-CODITY-PRICE", + "companyId": null, + "title": "Codity席位年付与一次性服务", + "url": "https://codity.ai/pricing", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "Basic原$40/席位/月实年收480,Premium60/月实年收720;Codity One按年定制;一次性扫描/评估不续费。", + "limitation": "月等效报价非实际月收入,年付预收/一次性作业与ARR分开,ROI计算器为客户假设节省,不作自家公司收入;原$币种/实际合同待核。" + }, + { + "id": "PHALL26-CODITY-PROFILE", + "companyId": null, + "title": "Codity公司自报2025与团队范围", + "url": "https://www.linkedin.com/company/ekahalabs", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官方主页名Codity、链接codity.ai,列2025成立、11—50员工,成员含同官网Chaitanya。", + "limitation": "成立为自述非登记,范围不取中点。与Dealroom2024及不同创始字段待消歧,不无视早期业务线索或套用其他近名Codity年。" + }, + { + "id": "PHALL26-CODITY-DR", + "companyId": null, + "title": "Codity目录年份/创始差异", + "url": "https://app.dealroom.co/companies/codity_ai", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "原站搜索缓存列codity.ai、2024及Shree Varshan/Shakti Singh;当前公司主页2025与官网创始人名称不同,直达Cache miss。", + "limitation": "仅缓存字段不声称全文已读;可能记录版本/主体差异未确认,不据同域默认错误或直接并表,主体沿革和2025成立仍待核。" + }, + { + "id": "PHALL26-STORE-HOME", + "companyId": "AI105", + "title": "StoreClaw电商任务和用户边界", + "url": "https://www.storeclaw.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "当前官网为电商数据/库存、商品与广告、内容/店铺任务AI Agent;自报10万用户、2000卖家及合作。", + "limitation": "用户/商户销售与客户ROI不当StoreClaw付费或收入,Logo非合同,未验证24小时自主与产出效度;只属厂商描述。" + }, + { + "id": "PHALL26-STORE-ABOUT", + "companyId": "AI105", + "title": "StoreClaw官方成立年", + "url": "https://www.storeclaw.ai/about/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "官网About明确2026 FOUNDED,电商AI任务、Skills/连接器与定时自动化,反链同一官网。", + "limitation": "2026为公司自述非版权推断,精确法人登记及旧业务沿革未独立核;模块数量不当实际付费/独立测试。" + }, + { + "id": "PHALL26-STORE-TERMS", + "companyId": "AI105", + "title": "StoreClaw主体、第三方LLM与美元订阅", + "url": "https://www.storeclaw.ai/terms/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "条款自述Delaware StoreClaw Inc.,LLM由第三方提供,用户授权电商操作;套餐默认USD、循环扣款、退款例外另定。", + "limitation": "仅读主体/AI/授权/收费相关章节,非完整法律审查/安全背书。第三方推理和连接器支持成本需核;合同存在不证已售,未登记核验或操作商店。" + }, + { + "id": "PHALL26-STORE-PRICE", + "companyId": "AI105", + "title": "StoreClaw分层月费和积分额度", + "url": "https://www.storeclaw.ai/pricing/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "月付Pro19.9/Max39.9/Ultra199.9,结合条款默认USD;每月6000/12000/60000积分,另日刷额度/注册赠额和充值。", + "limitation": "是报价非实收,不以10万用户乘套餐估ARR。FAQ仍称Starter/Pro而价卡Pro/Max/Ultra,适用版本/订单待核;广告花费和客户店铺交易额不作平台净费。" + }, + { + "id": "PHALL26-POLLY-HOME", + "companyId": null, + "title": "PollyReach官网当前正文不可读", + "url": "https://pollyreach.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "本次官网浏览只返回标题,无可读正文;普通terms路径亦浏览工具不可访问。", + "limitation": "不声称当前产品/价表完整已读,不据不可读推停业/无收入;保留成立/运营者缺项,不绕过访问。" + }, + { + "id": "PHALL26-POLLY-TERMS", + "companyId": null, + "title": "PollyReach测试域合同适用限制", + "url": "https://web-test.pollyreach.ai/terms_of_service.html", + "publishedAt": "2026-03-20", + "accessedAt": "2026-10-31", + "kind": "产品发布平台/公司原始资料与主体补核", + "summary": "公开测试子域条款称PollyReach及关联方,列订阅/积分、Stripe支付和用户授权任务;未给清晰法人全名。", + "limitation": "测试域是否当前正式合同待核,生效日期非成立年。平台Free标签不推无付费,充值/订阅和电话/第三方成本需分,条款合规说法不当法律审查;未实际通话。" } ], "reviews": [ @@ -103965,6 +104357,72 @@ "PHALL25-DUIX-TERMS" ], "handling": "旧ARR原$币种/截至日不齐且旧公司范围外,不迁入新公司表;订阅/积分充值赠送、退款、一次性终身与BYOK模型成本分开,未披露收入不填零,不由产品发布/版权或条款更新日期补成立年。" + }, + { + "id": "PHALL26-R-COVERAGE", + "type": "2026 All有限名单、版本与旧业务归属", + "company": "Product Hunt All / Base44 / Fathom / Tencent / Viktor", + "scope": "dataset", + "summary": "2026 All首屏19卡已逐项登记,9项原Featured名单外产品;Base44 Backend复用公司,Fathom/Tencent为旧业务,Viktor旧Zeta年份与法律沿革分列。", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-BASE-PH", + "PHALL26-FATHOM-PH", + "PHALL26-TENCENT-PH", + "PHALL26-VIKTOR-PH", + "PHALL26-FATHOM-HOME", + "PHALL26-TENCENT-HOME", + "PHALL26-TENCENT-GROUP", + "PHALL26-VIKTOR-HOME", + "PHALL26-VIKTOR-TERMS", + "PHALL26-VIKTOR-PRICE", + "PHALL26-VIKTOR-HISTORY" + ], + "handling": "本批3linked/2既有范围外/7范围外/6年份待核/1推广;S04四批累计76位置不是76独立公司。原发现批次不改,成立年/业务当前性和法律注册分开;未穷尽分页/其他日期,不把客户数据/演示/旧收入迁新公司。" + }, + { + "id": "PHALL26-R-CONTRACT", + "type": "品牌主体/成立冲突与订阅、预算、积分净额", + "company": "Acti / Spira / Codity / PollyReach", + "scope": "dataset", + "summary": "TypeX多端订阅、Spira创作者预算/佣金合同、Codity Ekaha美印和2025/2024目录差异、PollyReach测试域合同适用分别留缺。", + "evidenceIds": [ + "PHALL26-ACTI-PH", + "PHALL26-SPIRA-PH", + "PHALL26-CODITY-PH", + "PHALL26-POLLY-PH", + "PHALL26-ACTI-HOME", + "PHALL26-ACTI-TERMS", + "PHALL26-SPIRA-HOME", + "PHALL26-SPIRA-TERMS", + "PHALL26-CODITY-HOME", + "PHALL26-CODITY-ABOUT", + "PHALL26-CODITY-TERMS", + "PHALL26-CODITY-PRICE", + "PHALL26-CODITY-PROFILE", + "PHALL26-CODITY-DR", + "PHALL26-POLLY-HOME", + "PHALL26-POLLY-TERMS" + ], + "handling": "四项继续pending-year,AI任务描述不填成立年。月等效年收和一次性扫描、广告预算/创作者佣金与平台净费、积分赠送/充值及推理/电话成本分开;测试域/占位和目录差异不直接认停业或造假,无收入新增。" + }, + { + "id": "PHALL26-R-STORE", + "type": "电商Agent订阅与店铺GMV/广告预算拆分", + "company": "StoreClaw", + "companyIds": [ + "AI105" + ], + "scope": "companies", + "summary": "2026官网成立自述、第三方LLM电商任务与USD价表支持纳入垂直应用;默认月套餐含额度,另赠额/日刷/充值。", + "evidenceIds": [ + "PHALL26-STORE-PH", + "PHALL26-STORE-HOME", + "PHALL26-STORE-ABOUT", + "PHALL26-STORE-TERMS", + "PHALL26-STORE-PRICE" + ], + "handling": "需实收/退款、活跃付费卖家、续费和合同版本,以及模型、工具、连接器与人工支持成本。官网用户/卖家数不等付费,店铺销售及广告预算不归平台营收;精确注册/团队/地点与独立技术效度缺,收入未知不填零。" } ], "coverage": { @@ -116657,6 +117115,332 @@ "note": "年度链接现EZsite,同域官网明确原EasySite AI,产品2025上线不作公司成立。条款超时,保留主体年份缺;不套不同域easysite.ai/其他EasySite年份。月付/按量BYOK/终身及非失效积分分开,无收入新增。" } ] + }, + { + "id": "PH-2026-all-visible-1", + "sourceId": "S04", + "url": "https://www.producthunt.com/leaderboard/yearly/2026/all", + "accessedAt": "2026-10-31", + "scope": "All独立年度入口当前首个公开响应19张文字卡,9项原Featured之外产品。3位置关联公司(Base44/Goldfish既有、StoreClaw新增)、2既有范围外对照、7范围外、6年份待核、1推广;Framer双卡同产品、仅图片位置及分页不作新公司全量。", + "complete": false, + "records": [ + { + "id": "PHALL26-C01", + "name": "Base44 Backend Platform", + "url": "https://www.producthunt.com/products/base44", + "categoryId": "C04", + "kind": "product", + "profileStatus": "readable", + "status": "linked", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-BASE-PH" + ], + "note": "同页原版2025及2026 Backend,关联现AI056,不新增公司/复制ARR;客户自建作品和集团收入排除。", + "companyId": "AI056" + }, + { + "id": "PHALL26-C02", + "name": "Acti", + "url": "https://www.producthunt.com/products/acti-2", + "categoryId": "C09", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-ACTI-PH", + "PHALL26-ACTI-HOME", + "PHALL26-ACTI-TERMS" + ], + "note": "TypeX Limited自述多端AI键盘,第三方模型与付费订阅/积分已明,但成立年份/旧主体沿革缺;2026产品/条款不补公司成立,Free标签非零收入。" + }, + { + "id": "PHALL26-C03", + "name": "happycapy", + "url": "https://www.producthunt.com/products/happycapy", + "categoryId": "C09", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "note": "App Store销售方TRICKLE PTE. LTD.已由ACRA核UEN 202542386D、2025-09-23注册;但全球网页服务主体、旧Trickle业务和新销售法人关系仍缺,继续待核,不据新法人注册自动认定新创业,不转移旧收入。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "PH25-E-19", + "PH-HAPPYCAPY-ABOUT", + "PH-HAPPYCAPY-PRIVACY", + "PH-TRICKLE-HOME", + "PH-TRICKLE-PROFILE", + "PH-HAPPYCAPY-HISTORY", + "PH-HAPPYCAPY-TERMS", + "FOLLOWUP-CAPY-SELLER", + "FOLLOWUP-CAPY-ACRA", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C04", + "name": "Fundraisly", + "url": "https://www.producthunt.com/products/fundraisly", + "categoryId": "C07", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "note": "运营主体Accumulator Fundraising LLC;成立年待核。固定/经常性或按通话的服务收费需拆分;Gett历史ARR、创始人及客户筹资不作Fundraisly收入。 公司公开主页称属于Accumulator,但无成立年份字段,保持待核。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "PH-FUNDRAISLY-ABOUT", + "PH-FUNDRAISLY-ENTITY", + "PH-FUNDRAISLY-PLAN", + "PH-FUNDRAISLY-PROFILE", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C05", + "name": "Rork Max", + "url": "https://www.producthunt.com/products/rork-app-for-ios", + "categoryId": "C04", + "kind": "product", + "profileStatus": "readable", + "status": "existing-outside-cohort", + "note": "映射现有Rork对照记录;2024成立,不因Rork Max发布重新算2026新公司。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "companyId": "AI054", + "evidenceIds": [ + "E054", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C06", + "name": "Framer 3.0", + "url": "https://www.producthunt.com/products/framer", + "categoryId": "C04", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "note": "Framer官网列2014成立;3.0及AI新产品不作2026新公司,未新增公司。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "PH-FRAMER-ABOUT", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C07", + "name": "Fathom 3.0", + "url": "https://www.producthunt.com/products/fathom", + "categoryId": "C05", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-FATHOM-PH", + "PHALL26-FATHOM-HOME" + ], + "note": "同品牌/同域2021已有原产品、3.0为更新,按既有业务排除,精确注册未核;不与其他财务分析同名Fathom混用。" + }, + { + "id": "PHALL26-C08", + "name": "Cowork", + "url": "https://www.producthunt.com/products/claude", + "categoryId": "C05", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "note": "Cowork是Anthropic产品,官方称母公司2021成立;2026研究预览不新增公司,也不转移其他Claude产品收入。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "PH-COWORK-OWNER", + "PH-ANTHROPIC-FOUND", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C09", + "name": "Tencent EdgeOne Makers", + "url": "https://www.producthunt.com/products/tencent-edgeone-2", + "categoryId": "C02", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-TENCENT-PH", + "PHALL26-TENCENT-HOME", + "PHALL26-TENCENT-GROUP" + ], + "note": "Tencent EdgeOne现平台Makers功能,腾讯官方集团1998沿革;2026发布非新公司,不分摊集团收入或客户应用交易额。" + }, + { + "id": "PHALL26-C10", + "name": "Cloudflare推广", + "url": null, + "categoryId": "C02", + "kind": "promotion", + "profileStatus": "archive-only", + "status": "promotion", + "evidenceIds": [ + "PHALL25-PAGE26" + ], + "note": "当前Cloudflare Workers推广链接回年度榜单,不作新成立公司或收入。" + }, + { + "id": "PHALL26-C11", + "name": "Goldfish", + "url": "https://www.producthunt.com/products/goldfish-early-access", + "categoryId": "C09", + "kind": "product", + "profileStatus": "readable", + "status": "linked", + "note": "据EF投资组合页Founded 2026及官方创始人/域名关联纳入AI078;精确注册日、完整团队和收入留缺。免费测试不作零收入,创始人旧公司业绩不转移。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "GOLD-HOME", + "GOLD-TERMS", + "GOLD-PRIVACY", + "PH-GOLD", + "GOLD-EF", + "GOLD-CREATORS", + "GOLD-DOCS", + "PHALL25-PAGE26" + ], + "companyId": "AI078" + }, + { + "id": "PHALL26-C12", + "name": "Lightfield", + "url": "https://www.producthunt.com/products/lightfield", + "categoryId": "C06", + "kind": "product", + "profileStatus": "readable", + "status": "existing-outside-cohort", + "note": "映射Magical Tome, Inc.转型对照;2025是CRM上线,2022已有Tome业务,精确注册年未核,不计2026新公司。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "companyId": "AI073", + "evidenceIds": [ + "LF-ENTITY", + "LF-PIVOT", + "LF-HISTORY", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C13", + "name": "Viktor.com", + "url": "https://www.producthunt.com/products/viktor", + "categoryId": "C05", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-VIKTOR-PH", + "PHALL26-VIKTOR-HOME", + "PHALL26-VIKTOR-TERMS", + "PHALL26-VIKTOR-PRICE", + "PHALL26-VIKTOR-HISTORY" + ], + "note": "现Zeta AI Inc./zetalabs反链与2024 JACE公司稿关联,旧业务早于样本;稿列2024与会议目录2023有差异,均不重置2026。法律实体转换留缺,Team原$100月工作区/赠额充值非ARR。" + }, + { + "id": "PHALL26-C14", + "name": "Spira Maxima", + "url": "https://www.producthunt.com/products/spira-ai", + "categoryId": "C08", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-SPIRA-PH", + "PHALL26-SPIRA-HOME", + "PHALL26-SPIRA-TERMS" + ], + "note": "Maxima与Spira共页,AI生成/发布任务明确;合同仍创作者广告平台且有预算托管/佣金,当前FAQ占位,主体成立/实际功能与版本待核。2026产品更新/第三方目录不足原始成立证明,客户展示量/广告预算非净收入。" + }, + { + "id": "PHALL26-C15", + "name": "Codity", + "url": "https://www.producthunt.com/products/codity", + "categoryId": "C04", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-CODITY-PH", + "PHALL26-CODITY-HOME", + "PHALL26-CODITY-ABOUT", + "PHALL26-CODITY-TERMS", + "PHALL26-CODITY-PRICE", + "PHALL26-CODITY-PROFILE", + "PHALL26-CODITY-DR" + ], + "note": "官网Ekaha Labs美印,官方主页2025及Chaitanya与官网关联,Dealroom缓存2024/不同创始人仍待主体沿革消歧;不套近名codity.tech/lt。席位月等效实年收、一次性评估/扫描和客户ROI分开,无收入新增。" + }, + { + "id": "PHALL26-C16", + "name": "Framer AI Agents", + "url": "https://www.producthunt.com/products/framer", + "categoryId": "C04", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "note": "当前推广卡片指向Framer;官网列2014成立,不作2025新公司或2025发布证据。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "PH25-E-16", + "PH-FRAMER-ABOUT", + "PHALL25-PAGE26" + ] + }, + { + "id": "PHALL26-C17", + "name": "StoreClaw", + "url": "https://www.producthunt.com/products/storeclaw", + "categoryId": "C07", + "kind": "product", + "profileStatus": "readable", + "status": "linked", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-STORE-PH", + "PHALL26-STORE-HOME", + "PHALL26-STORE-ABOUT", + "PHALL26-STORE-TERMS", + "PHALL26-STORE-PRICE" + ], + "note": "官网明确2026成立与第三方LLM电商任务,关联新AI105,description级;StoreClaw Inc.自述未登记,用户/卖家数和店铺收益不当营收,USD订阅含积分及充值需拆,团队/地点与收入未知。", + "companyId": "AI105" + }, + { + "id": "PHALL26-C18", + "name": "PollyReach", + "url": "https://www.producthunt.com/products/pollyreach", + "categoryId": "C09", + "kind": "product", + "profileStatus": "readable", + "status": "pending-year", + "evidenceIds": [ + "PHALL25-PAGE26", + "PHALL26-POLLY-PH", + "PHALL26-POLLY-HOME", + "PHALL26-POLLY-TERMS" + ], + "note": "个人电话AI任务有平台/测试子域条款,官网当前零正文;测试条款是否正式适用及运营法人/成立年缺,生效日非成立。Free平台标签与订阅积分分开,未拨电话。" + }, + { + "id": "PHALL26-C19", + "name": "Upstream", + "url": "https://www.producthunt.com/products/upstream-3", + "categoryId": "C05", + "kind": "product", + "profileStatus": "readable", + "status": "outside-cohort", + "note": "YC官方列2023成立、S23批次,2026发布不重算公司年;创始人此前Asana、Algolia的ARR不归Upstream。 2026 All首屏复见,复用原证据/缺项,不重复公司或收入。", + "evidenceIds": [ + "UP-YC", + "UP-HOME", + "PH-UP", + "PHALL25-PAGE26" + ] + } + ] } ], "directoryRechecks": [ diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 42fa5be..b478d23 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ph-all25-1", + "version": "2026-10-31-ph-all26-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2794,8 +2794,8 @@ "app.dealroom.co" ], "initialAccess": "官网可读取", - "boundary": "已读Tana、Wabi及Laplace公开公司档案:Tana财务字段不一致留缺,Wabi2025字段与官方业务关联入表,Laplace未取得成立字段而保留候选;尚未取得两年成立筛选结果集,三个个案不等目录全量。 另读取Aparti公开档案并以公司自述成立关联;四个个案仍不等两年筛选全集,AI生成简介、上线与融资估值分开。 另复查Aernata目录搜索缓存,简介写Arnata物流AI,与YC现化学/旧Pentagon业务未对齐,仅登记来源对应缺项,未迁入其功能或财务。", - "nextCheck": "确认公开可取得的两年成立筛选清单;逐项追溯财务原始凭证及字段口径,受权限限制保留缺项。 Aernata/Arnata同名及目录AI生成简介需公司原始资料和主体链核实,不能据名录摘要扩写当前AI交付。", + "boundary": "已读Tana、Wabi及Laplace公开公司档案:Tana财务字段不一致留缺,Wabi2025字段与官方业务关联入表,Laplace未取得成立字段而保留候选;尚未取得两年成立筛选结果集,三个个案不等目录全量。 另读取Aparti公开档案并以公司自述成立关联;四个个案仍不等两年筛选全集,AI生成简介、上线与融资估值分开。 另复查Aernata目录搜索缓存,简介写Arnata物流AI,与YC现化学/旧Pentagon业务未对齐,仅登记来源对应缺项,未迁入其功能或财务。 另Codity原站搜索缓存2024/不同创始字段,与当前公司主页2025/官网Ekaha沿革尚未对齐;直达Cache miss,不据目录自动排除或迁入财务。", + "nextCheck": "确认公开可取得的两年成立筛选清单;逐项追溯财务原始凭证及字段口径,受权限限制保留缺项。 Aernata/Arnata同名及目录AI生成简介需公司原始资料和主体链核实,不能据名录摘要扩写当前AI交付。 Codity同域2024/2025与创始字段需法律主体/历史业务原始证据消歧,缓存不视为已读全文。", "limitation": "完整档案需权限;概览及财务表不能未经勾稽直接导入ARR", "accessRecheckedAt": "2026-10-30" }, @@ -2810,8 +2810,8 @@ "producthunt.com" ], "initialAccess": "官网可读取", - "boundary": "两年公开响应各19条,共38条。当前5条关联公司、2条范围外对照、26条范围外/既有业务、3条年份待核、2条推广。旧版本、品牌与法律主体分开,Tapflow据2024原版记录排除,Happycapy仍待核;非两年全量。 Pazi补既有业务链后范围外,保留字段冲突;Happycapy iOS销售方与ACRA注册日已核,全球产品/旧业务沿革仍待核。 后续核All独立入口,2025首屏新增19条发现位置(9项原38卡外产品),逐项登记14范围外/4年份待核/1推广;累计57条位置非独立公司。LilysAI/Readray2023沿革、Dreamina集团、Welltory2016、TrueFoundry2021和VidAU2024旧产品分开;Ada/ChartGen、EZsite/EasySite及Duix主体年份留缺。2026 All另读19卡尚待逐项登记,page=2两年均浏览工具不可访问,非证明无末页;原Featured快照不回写,无主公司/收入新增。", - "nextCheck": "继续补两年其余分页/日期、仅图片位置及3条年份待核候选;保留Pazi日期冲突与旧业务排除依据,核清其余品牌与主体,避免转移历史业绩。 Happycapy的新加坡销售法人不自动等新创业;继续补网页签约方与集团业务沿革。 优先登记2026 All19文字卡及与Base44等已有公司映射,补2025 All新增Duix/Ada/EZsite主体成立/合同、Story目录缓存至正文/运营链,保留近名域区别。首次All响应非全量分页,其他日期与图片位置继续缺项。", + "boundary": "两年公开响应各19条,共38条。当前5条关联公司、2条范围外对照、26条范围外/既有业务、3条年份待核、2条推广。旧版本、品牌与法律主体分开,Tapflow据2024原版记录排除,Happycapy仍待核;非两年全量。 Pazi补既有业务链后范围外,保留字段冲突;Happycapy iOS销售方与ACRA注册日已核,全球产品/旧业务沿革仍待核。 后续核All独立入口,2025首屏新增19条发现位置(9项原38卡外产品),逐项登记14范围外/4年份待核/1推广;累计57条位置非独立公司。LilysAI/Readray2023沿革、Dreamina集团、Welltory2016、TrueFoundry2021和VidAU2024旧产品分开;Ada/ChartGen、EZsite/EasySite及Duix主体年份留缺。2026 All另读19卡尚待逐项登记,page=2两年均浏览工具不可访问,非证明无末页;原Featured快照不回写,无主公司/收入新增。 后续2026 All19文字卡逐项登记(9项原Featured之外),3关联位置/2既有范围外/7范围外/6年份待核/1推广;Base44和Goldfish复用,StoreClaw官网2026及第三方LLM电商任务新增AI105。四批累计76发现位置非独立公司,原批次保持,无收入观测新增。Fathom/Tencent/Viktor旧业务、Codity2025/2024与创始差异、Spira合同/占位、Acti与Polly主体年份分开。", + "nextCheck": "继续补两年其余分页/日期、仅图片位置及3条年份待核候选;保留Pazi日期冲突与旧业务排除依据,核清其余品牌与主体,避免转移历史业绩。 Happycapy的新加坡销售法人不自动等新创业;继续补网页签约方与集团业务沿革。 优先登记2026 All19文字卡及与Base44等已有公司映射,补2025 All新增Duix/Ada/EZsite主体成立/合同、Story目录缓存至正文/运营链,保留近名域区别。首次All响应非全量分页,其他日期与图片位置继续缺项。 2026 All本首屏逐项已有记录;继续Codity美印登记与旧域/创始沿革,Acti TypeX、Spira、PollyReach正式主体/成立及产品合同版本,StoreClaw实收/续费和推理工具成本;四批有限首屏不替全年、分页及仅图片位置核查。", "limitation": "上线时间不等于成立时间", "accessRecheckedAt": "2026-10-30" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 20dba5a..57c1e37 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-ph-all25-1", + "sourceVersion": "2026-10-31-ph-all26-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From ae84304e16e134b076e4455108abb8d2a6d4eb11 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:31:29 +0800 Subject: [PATCH 02/11] Keep explicit ARR labels while guarding ambiguous income samples --- apps/docs/tests/research.test.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 95c0285..9ddad38 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -279,9 +279,15 @@ test("ambiguous ARR claims retain currency, precision and attribution limits", ( const portfolio = snapshot.observations.filter((o) => o.company === "AI100"); assert.deepEqual(portfolio.filter((o) => o.selection === "signal").map((o) => o.id), ["SR25-O-DRS-PORTFOLIO"], "a product milestone must not be added to its company portfolio as another company"); - assert.ok(snapshot.observations.filter((o) => o.id.startsWith("SR25-O-")).every((o) => - o.unit !== "USD" && !o.metric && !o.observedAt && o.comparisonGroup === null), + const speedrun2025 = snapshot.observations.filter((o) => o.id.startsWith("SR25-O-")); + assert.ok(speedrun2025.every((o) => + o.unit !== "USD" && !o.observedAt && o.comparisonGroup === null), "access dates and dollar symbols must not invent dated USD income samples"); + assert.deepEqual(speedrun2025.filter((o) => o.metric).map((o) => [o.id, o.metric]).sort(), + [["SR25-O-DRS-PORTFOLIO", "arr"], ["SR25-O-LOOPS-ARR", "arr"]], + "explicit company ARR claims retain their metric without inferring currency or reporting dates"); + assert.ok(platformIncomeSample(snapshot, { windowDays: null }).points.every((point) => + !point.observation.id.startsWith("SR25-O-")), "undated ARR claims never enter platform MRR comparisons"); }); // Retractions and forecasts must stay visible for review without becoming revenue signals. -- 2.52.0 From cce2fd858137576fb6ab63caa3b3397d1a8f65c3 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:36:33 +0800 Subject: [PATCH 03/11] Expose ARR disclosure gaps before statistical comparison --- apps/docs/src/components/ArrDisclosures.tsx | 29 ++++++++++++++++----- apps/docs/src/lib/research-statistics.ts | 14 ++++++++++ apps/docs/tests/research.test.ts | 21 ++++++++++++++- 3 files changed, 57 insertions(+), 7 deletions(-) diff --git a/apps/docs/src/components/ArrDisclosures.tsx b/apps/docs/src/components/ArrDisclosures.tsx index 1bd564f..adb1627 100644 --- a/apps/docs/src/components/ArrDisclosures.tsx +++ b/apps/docs/src/components/ArrDisclosures.tsx @@ -1,26 +1,37 @@ import { useState } from "react"; import { evidenceUrl, type ResearchSnapshot } from "@/lib/ai-research"; -import { arrDisclosureCoverage, arrDisclosures } from "@/lib/research-statistics"; +import { arrDisclosureCoverage, arrDisclosures, arrFieldGaps, type ArrFieldGap } from "@/lib/research-statistics"; const labels: Record = { signal: "企业或当事方披露", estimate: "第三方估算", historical: "历史披露", "historical-estimate": "历史估算", }; +const gapLabels: Record = { + date: "缺有效财务截至日", currency: "USD 未确认(含其他币种)", + amount: "下界、近似或非精确金额", estimate: "第三方估算", +}; export default function ArrDisclosures({ data, onSelect }: { data: ResearchSnapshot; onSelect: (id: string) => void }) { const [category, setCategory] = useState(""); const [year, setYear] = useState(""); - const rows = arrDisclosures(data, { category, foundedYear: year ? Number(year) : undefined }); + const [gap, setGap] = useState(""); + const claims = arrDisclosures(data, { category, foundedYear: year ? Number(year) : undefined }); + const rows = claims.filter(({ observation }) => !gap || arrFieldGaps(observation, data.asOf).includes(gap)); + const gapCounts = (Object.keys(gapLabels) as ArrFieldGap[]).map((id) => ({ + id, count: claims.filter(({ observation }) => arrFieldGaps(observation, data.asOf).includes(id)).length, + })); + const completeFields = claims.filter(({ observation }) => !arrFieldGaps(observation, data.asOf).length).length; const coverage = arrDisclosureCoverage(data, year ? Number(year) : undefined); - const companies = new Set(rows.map((row) => row.company.id)); + const companies = new Set(claims.map((row) => row.company.id)); const categories = new Map(data.categories.map((item) => [item.id, item.name])); const evidence = new Map(data.evidence.map((item) => [item.id, item])); return

2025—2026 年成立公司的 ARR 披露

-

这是跨时点证据表,共 {companies.size} 家公司、{rows.length} 条记录;同一公司的历史里程碑逐条保留,不能相加或视为独立公司。ARR 标签沿用原始披露,未证明经常性收入定义或审计状态;不纳入 MRR 图表,不计算同期行业均值或造假概率。仅收录明确标注的 ARR;定义冲突、目标、承诺、客户和前雇主收入排除,缺失不作零。

+

这是跨时点证据表,共 {companies.size} 家公司、{claims.length} 条记录;同一公司的历史里程碑逐条保留,不能相加或视为独立公司。ARR 标签沿用原始披露,未证明经常性收入定义或审计状态;不纳入 MRR 图表,不计算同期行业均值或造假概率。仅收录明确标注的 ARR;定义冲突、目标、承诺、客户和前雇主收入排除,缺失不作零。

+
@@ -32,6 +43,12 @@ export default function ArrDisclosures({ data, onSelect }: { data: ResearchSnaps )}
ARR 披露覆盖:按所选成立年份、每家公司计一次。点击分类筛选下方证据表。

分母含仅有目录资料的公司,覆盖率反映本次采集深度,不代表行业披露率。企业披露含历史里程碑,同一公司兼有披露和估算时归企业披露;缺少 ARR 的公司仍可能有其他收入。披露时点、币种与合同定义未对齐,不能将已披露少数公司的均值外推至整个分类,也不能由离散性判断财务造假。

+
@@ -42,11 +59,11 @@ export default function ArrDisclosures({ data, onSelect }: { data: ResearchSnaps - + ; })}
金额保留原币种、下界和估算身份;日期栏保留业务截至日缺项
公司 / 分类收费与交付模式原始 ARR 声明时点身份 / 限制证据
{categories.get(company.cat)} · {company.year} {company.businessModel ?? company.price} {item.bound !== "=" && item.bound}{new Intl.NumberFormat("zh-CN", { maximumFractionDigits: 2 }).format(item.value)} {item.unit}{item.kind}{item.timing}{labels[item.selection]}{item.reason}{item.timing}{labels[item.selection]}{item.reason}{arrFieldGaps(item, data.asOf).map((id) => gapLabels[id]).join(";") || "基础字段齐全;定义、期间与主体仍须核实"} {url ? {item.evidence} ↗ : item.evidence}
- {!rows.length &&

当前筛选没有符合条件的已记录 ARR 声明;不代表这些公司收入为零。

} + {!rows.length &&

当前分类、成立年与补证筛选没有符合条件的已记录 ARR 声明;不代表这些公司收入为零。

}
; } diff --git a/apps/docs/src/lib/research-statistics.ts b/apps/docs/src/lib/research-statistics.ts index 2ad13d6..55dbf1b 100644 --- a/apps/docs/src/lib/research-statistics.ts +++ b/apps/docs/src/lib/research-statistics.ts @@ -31,6 +31,20 @@ export function arrDisclosureCoverage(snapshot: ResearchSnapshot, foundedYear?: missing: companies.length - disclosed.size, records: claims.length }; }); } + +export type ArrFieldGap = "date" | "currency" | "amount" | "estimate"; + +/** Prerequisites for inspecting exact, dated USD disclosures; never a comparability or audit verdict. */ +export function arrFieldGaps(observation: ResearchObservation, asOf: string): ArrFieldGap[] { + const gaps: ArrFieldGap[] = []; + const day = calendarDay(observation.observedAt); + const end = calendarDay(asOf); + if (day === null || end === null || day > end) gaps.push("date"); + if (observation.unit !== "USD") gaps.push("currency"); + if (observation.bound !== "=" || !Number.isFinite(observation.value) || observation.value < 0) gaps.push("amount"); + if (["estimate", "historical-estimate"].includes(observation.selection)) gaps.push("estimate"); + return gaps; +} export type IncomeStats = { n: number; mean: number; median: number; min: number; max: number; sampleDeviation: number | null; cv: number | null; meanMedianRatio: number | null; diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 9ddad38..a136e99 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -11,7 +11,26 @@ import { openSiteDatabase } from "../src/lib/site-database"; import { categorySummary, evidenceUrl, reviewCompanyIds, validateResearch, type ResearchSnapshot } from "../src/lib/ai-research"; import { consumeCode, initializeStore } from "../src/lib/auth-store"; import { newAuthConfig } from "../src/lib/auth"; -import { arrDisclosureCoverage, arrDisclosures, compareIncomeGroups, describeIncome, groupIncome, platformIncomeSample } from "../src/lib/research-statistics"; +import { arrDisclosureCoverage, arrDisclosures, arrFieldGaps, compareIncomeGroups, describeIncome, groupIncome, platformIncomeSample } from "../src/lib/research-statistics"; + +test("ARR field checks distinguish missing dates, other currencies, bounds and estimates", () => { + const observation = { ...seed.observations[0], metric: "arr", unit: "USD", value: 100, + bound: "=", selection: "signal", observedAt: "2026-10-30" } as ResearchSnapshot["observations"][number]; + assert.deepEqual(arrFieldGaps(observation, "2026-10-31"), []); + for (const observedAt of [undefined, "2026-02-30", "2026-11-01"]) + assert.deepEqual(arrFieldGaps({ ...observation, observedAt }, "2026-10-31"), ["date"]); + assert.deepEqual(arrFieldGaps({ ...observation, unit: "EUR" }, "2026-10-31"), ["currency"], + "known foreign currencies stay distinct without an invented USD conversion"); + assert.deepEqual(arrFieldGaps({ ...observation, unit: "原文$,币种待核", bound: ">", + selection: "historical-estimate", observedAt: undefined }, "2026-10-31"), ["date", "currency", "amount", "estimate"]); + assert.deepEqual(arrFieldGaps({ ...observation, value: Number.NaN }, "2026-10-31"), ["amount"]); + assert.deepEqual(arrFieldGaps({ ...observation, value: -1 }, "2026-10-31"), ["amount"]); + assert.deepEqual(arrFieldGaps({ ...observation, value: 0 }, "2026-10-31"), [], "disclosed zero is a valid amount"); + const rows = arrDisclosures(seed as ResearchSnapshot); + assert.ok(rows.length > 0); + assert.ok(rows.every(({ observation: claim }) => arrFieldGaps(claim, seed.asOf).length > 0), + "the current ledger cannot be described as a complete dated exact USD sample"); +}); test("income interpretations compare sufficient samples within a provider and known billing model", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; -- 2.52.0 From 0bd2ce6b02425edaae3524af45001415b4275afe Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:45:58 +0800 Subject: [PATCH 04/11] Cross-check Sacra candidates and classify General Intuition --- apps/docs/scripts/auth-cli.ts | 4 +- apps/docs/tests/research.test.ts | 16 +- content/research/ai-companies.seed.json | 328 ++++++++++++++++++++- content/research/ai-companies.sources.json | 6 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 337 insertions(+), 19 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 0294d5a..be45974 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -182,9 +182,9 @@ 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, 1197); + assert.equal(research.companies.length, 1198); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4632); + assert.equal(research.evidence.length, 4646); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index a136e99..fac49f4 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -123,8 +123,8 @@ 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, 1197); - assert.equal(initial.evidence.length, 4632); + assert.equal(initial.companies.length, 1198); + assert.equal(initial.evidence.length, 4646); assert.equal(initial.observations.length, 453); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); @@ -164,8 +164,8 @@ 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, 208); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 141); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 209); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 44); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); @@ -185,11 +185,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), 1197); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1198); assert.equal(summary.reduce((n, c) => n + c.self, 0), 58); assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 2); assert.equal(summary.reduce((n, c) => n + c.platform, 0), 19); - assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1118); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1119); 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 === "公司整体")); @@ -224,8 +224,8 @@ test("service run rates, legacy freight revenue and paid adoption do not become test("technical reviews keep accessible materials separate from tested capabilities", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; - assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 182); - assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 25); + assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 183); + assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 26); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1); assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown"); assert.match(snapshot.companies.find((c) => c.id === "AI051")!.technicalReview!.testScope!, /Sep 2026/); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 1938853..7ddc8e3 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ph-all26-1", + "version": "2026-10-31-sacra-targeted-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -1477,7 +1477,7 @@ "business": "追踪品牌在AI搜索中的可见度,并以Agent协助研究、内容建议和工具间任务交接。", "buyer": "品牌营销团队与代理机构", "delivery": "2026-10-22公司公告称超过3500家公司采用,发布Peec Agent;未独立测试效果", - "notes": "2025年1月成立、2月产品上线;2024团队在Antler相识。招聘转载的1500万ARR缺明确截止日及币种代码,与8月第三方估算不视为相互独立验证。 公司五月披露的客户总数未证全为付费/全价,不作ARR分母;现提示词/项目/模型数量与Agentcredits为计费容量,不能当客户数。", + "notes": "2025年1月成立、2月产品上线;2024团队在Antler相识。招聘转载的1500万ARR缺明确截止日及币种代码,与8月第三方估算不视为相互独立验证。 公司五月披露的客户总数未证全为付费/全价,不作ARR分母;现提示词/项目/模型数量与Agentcredits为计费容量,不能当客户数。 复查Sacra明确估算与客户分母推ARPU,不能以两个下界相除确认单客收入;Berlin,United States目录地理字段不照抄。原收入观测不重复新增。", "cohort": "2025年成立", "teamBasis": "2026-10-30访问公司招聘转载列100+,作为下界;页面Posted on 2026-09-22不等业务截止日,未独立核实", "price": "品牌套餐比较表原文$95/$245/$495每月,企业询价;按提示词、模型与项目及Agent额度区分,席位不限;币种代码待核 当前主卡Enterprise年约,但帮助页允许月订阅,实际合同需核;Starter无API,品牌Pro/Advanced及机构套餐可用。", @@ -1492,7 +1492,9 @@ "PEEC-JOBS", "ARRCHECK2-PEEC-PRICE", "ARRCHECK2-PEEC-API", - "ARRCHECK2-PEEC-PRESS" + "ARRCHECK2-PEEC-PRESS", + "SACRA1-PEEC-SACRA", + "SACRA1-PEEC-ORIGINAL" ], "revenueStatus": "self", "teamBound": "≥", @@ -1510,7 +1512,7 @@ "business": "用自然语言生成应用,并提供数据库、认证与托管", "buyer": "创业者、小企业与内部工具团队", "delivery": "上市公司披露经营增长;技术质量尚未独立测试", - "notes": "2025年成立,同年6月被Wix收购;收购后收入与独立初创组分开。 Wix2026二季度附件给出包含Base44的期末有效订阅MRR×12定义,但集团ARR/收入非Base44独立财务;年初非GAAP毛利近零、下半年60%是预测。信用消耗可随模型路由变化,失败也可扣费,不能仅凭ARR判断商业盈利。", + "notes": "2025年成立,同年6月被Wix收购;收购后收入与独立初创组分开。 Wix2026二季度附件给出包含Base44的期末有效订阅MRR×12定义,但集团ARR/收入非Base44独立财务;年初非GAAP毛利近零、下半年60%是预测。信用消耗可随模型路由变化,失败也可扣费,不能仅凭ARR判断商业盈利。 复查Sacra2亿为估算复述,非新增独立披露;Wix集团/分部ARR与产品独立收入和推理毛利预期继续分开,不重复里程碑。", "cohort": "2025年成立", "teamBasis": null, "price": "当前默认年付等效月价原$16/40/80/160,Starter/Builder/Pro/Elite双额度,免费层25月消息;企业询价。原$不补币种,年付折算与单独月付分开。", @@ -1525,7 +1527,9 @@ "E096", "ARRCHECK2-BASE-DEFINITION", "ARRCHECK2-BASE-PRICE", - "ARRCHECK2-BASE-TERMS" + "ARRCHECK2-BASE-TERMS", + "SACRA1-BASE-SACRA", + "SACRA1-BASE-SEC" ], "revenueStatus": "self", "pricingEvidence": "ARRCHECK2-BASE-PRICE", @@ -37647,6 +37651,45 @@ "PHALL26-STORE-ABOUT" ] } + }, + { + "id": "AI106", + "name": "General Intuition", + "url": "https://www.generalintuition.com/", + "channel": "S05", + "cat": "C01", + "year": 2025, + "team": null, + "location": null, + "business": "研究世界模型和动作模型,以行动标注的游戏视频学习环境演变,公开MIRA多人交互世界模型研究代码。", + "buyer": "游戏、仿真和机器人企业及研究团队", + "delivery": "模型研究/公开代码与有限合作方商业API;更广泛访问候补,收费/服务保障及数据授权安排待核", + "notes": "融资、Medal旧平台数据/用户及合作标志不作新公司收入。官网称过去一年募资超过6.5亿原$而目录轮次时点不同,不跨源相加。代码公开不等独立复现或全部模型/数据商用许可。", + "cohort": "官方公司主页列2025成立并由官网反链;精确注册、与Medal集团/数据沿革仍待核,不仅依据产品发布年", + "teamBasis": "官方主页范围11—50与成员列表口径未对齐,精确现员未知,不取中点", + "price": "少量伙伴商业API及候补,未取得公开价格/实际服务合同;不把融资、研究代码或用户量当销售", + "stage": "MIRA代码公开、官网称少量商业API合作方,其余候补;收费与实际部署规模及独立效度待核", + "sourceType": "官方公司主页/官网/营销条款、官网反链技术仓库与目录交叉核查", + "evidenceIds": [ + "SACRA1-GI-SACRA", + "SACRA1-GI-HOME", + "SACRA1-GI-TERMS", + "SACRA1-GI-PROFILE", + "SACRA1-GI-CODE" + ], + "revenueStatus": "unknown", + "businessModel": "世界/动作模型API合作及研究生态;实际许可/按量/项目收费与数据、训练、推理成本待核", + "entityBasis": "营销网站条款称General Intuition US Inc.且与Medal条款分离;未独立核注册或集团主体/资产转移,不重复计法人数", + "classificationBasis": "按自有世界/动作模型研究归C01;具身/游戏应用不是仅做机器人硬件或内容服务,公开单模型不代表企业全部能力", + "technicalReview": { + "level": "public-artifact", + "reviewedAt": "2026-10-31", + "summary": "官网反链官方MIRA仓库,README/源目录及合作方反链可核;未运行模型、评估或独立复现。", + "evidenceIds": [ + "SACRA1-GI-HOME", + "SACRA1-GI-CODE" + ] + } } ], "observations": [ @@ -95718,6 +95761,160 @@ "kind": "产品发布平台/公司原始资料与主体补核", "summary": "公开测试子域条款称PollyReach及关联方,列订阅/积分、Stripe支付和用户授权任务;未给清晰法人全名。", "limitation": "测试域是否当前正式合同待核,生效日期非成立年。平台Free标签不推无付费,充值/订阅和电话/第三方成本需分,条款合规说法不当法律审查;未实际通话。" + }, + { + "id": "SACRA1-DIRECTORY", + "companyId": null, + "title": "Sacra公开公司目录可读范围", + "url": "https://sacra.com/explore/companies/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "从公司档案Companies链接确认实际目录入口,当前公开响应只有筛选输入和通用导航,未取得公司结果行。", + "limitation": "不能据搜索四个目标当全站名单或两年筛选全集;/companies不可访问和/c/404不代表无公司。不登录、绕过或调用私有接口,本批仅定向个案。" + }, + { + "id": "SACRA1-GIMLET-SACRA", + "companyId": null, + "title": "Gimlet目录成立与资金字段冲突", + "url": "https://sacra.com/c/gimlet-labs/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "当前页首成立2023、Funding9200万,正文成立2025、融资累计3.92亿,并列2025公开发布/2026后续轮次。", + "limitation": "同页字段明显未对齐,不能选新年入表或将融资当收入;资金截至日/轮次可能不同,未取得方法底表,不据此推公司造假。按投资方原始成立补核。" + }, + { + "id": "SACRA1-GIMLET-HOME", + "companyId": null, + "title": "Gimlet当前推理平台与Agent内核项目", + "url": "https://gimletlabs.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "官网为推理/调度平台与kforge Agent生成内核项目,反链各产品、研究和文档。", + "limitation": "AI任务明确,但新项目/公开发布不重置公司成立;模型/效率宣传未独立验证,不执行代码或把客户计算节省当收入。" + }, + { + "id": "SACRA1-GIMLET-ECLIPSE", + "companyId": null, + "title": "Gimlet投资方2023成立原始资料", + "url": "https://eclipse.capital/companies/Gimlet", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "投资方Eclipse列Gimlet Founded Year2023、同官网和五创始人,称2025年10月出隐身及2026融资。", + "limitation": "成立为投资方自述非独立登记;2025公开发布非公司创立。八位数revenues未给口径/财务截至日,不补ARR或计入新公司样本;投资者有利益关系。" + }, + { + "id": "SACRA1-GIMLET-LAUNCH", + "companyId": null, + "title": "Gimlet2025公开发布不等成立", + "url": "https://gimletlabs.ai/blog/introducing-gimlet-labs", + "publishedAt": "2025-10-22", + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "公司公开介绍推理系统,原文署名与投资方同团队,描述此前已构建的基础设施/研究。", + "limitation": "这是公开发布而非2025成立证明;性能和商业进展自述非独立评测或实收底表,按投资方2023归范围外并保留目录冲突。" + }, + { + "id": "SACRA1-GI-SACRA", + "companyId": "AI106", + "title": "General Intuition目录与融资非收入", + "url": "https://sacra.com/c/general-intuition/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "目录列2025成立、世界/动作模型研究,正文列种子/后续融资及Medal关联背景,指向generalintuition.com。", + "limitation": "目录融资数与官网过去一年融资口径可能不同,不相加或当收入;模型能力追原始产物,成立另以公司主页核,目录地点不作精确运营地。" + }, + { + "id": "SACRA1-GI-HOME", + "companyId": "AI106", + "title": "General Intuition当前世界模型与商业API阶段", + "url": "https://www.generalintuition.com/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "官网明确世界/动作模型研究、MIRA与Kyutai/Epic合作;称少量游戏/仿真/机器人合作方已接商业API,其余候补。称过去一年募资超过6.5亿原$。", + "limitation": "商业API/合作方不证明已付费或收入,募资非ARR;Medal上传量与旧业务不能归新公司收入。MIRA实时/任务效果为厂商描述,公开研究与产品合同分开。" + }, + { + "id": "SACRA1-GI-TERMS", + "companyId": "AI106", + "title": "General Intuition网站运营者与Medal业务边界", + "url": "https://www.generalintuition.com/terms", + "publishedAt": "2026-06-25", + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "网站条款自述General Intuition US Inc.运营,仅管营销网站,明确不管Medal平台/服务;研究和招聘信息非承诺。", + "limitation": "网站条款不是商业API/模型服务合同,法律登记/集团与Medal转移安排未独立核。关联数据资源不等所有权/许可已审计,不合并旧平台财务。" + }, + { + "id": "SACRA1-GI-PROFILE", + "companyId": "AI106", + "title": "General Intuition官方自报2025成立", + "url": "https://www.linkedin.com/company/generalintuition/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "官网反链公司主页列2025成立、同域名及模型使命;公司规模范围11—50,另有可见成员列表。", + "limitation": "成立是公司自述非独立登记;规模范围/成员列表口径不等精确现员数,不取中点或按招聘反推,精确地点/集团沿革待核。" + }, + { + "id": "SACRA1-GI-CODE", + "companyId": "AI106", + "title": "MIRA官方代码产物与未运行限制", + "url": "https://github.com/mira-wm/mira", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "General Intuition官网直接反链MIRA公开仓库,README同名报告、作者合作方反链,提供源目录、配置与评估入口,列Apache2.0。", + "limitation": "仅阅读仓库/README与导航,不运行/下载模型或核实验;公开代码支持public-artifact级,不提升独立测试。许可标签不替全部权重/数据商用授权核查,MIRA成绩非整个公司能力。" + }, + { + "id": "SACRA1-PEEC-SACRA", + "companyId": "AI055", + "title": "Peec估算、同比分母与原始披露区分", + "url": "https://sacra.com/c/peec/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "Sacra明确估算2026年8月ARR1500万美元,并以5月1000万/2500客户推ARPU;页首地点写Berlin,United States。", + "limitation": "复述既有O066估算不新增独立观测或确定财务日。客户是否全部付费未证,算术ARPU不作已验证单客收入;地点字段不照抄,估算方法/底表仍缺。" + }, + { + "id": "SACRA1-PEEC-ORIGINAL", + "companyId": "AI055", + "title": "Peec公司稿与Sacra派生指标对应", + "url": "https://www.globenewswire.com/news-release/2026/05/28/3303009/0/en/peec-ai-hits-10m-arr-16-months-after-launch-as-brands-race-to-optimize-for-ai-search.html", + "publishedAt": "2026-05-28", + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "公司稿称ARR超过1000万原$、客户超过2500、2025年1月成立;客户及增长分母是公司描述。", + "limitation": "公告/相对里程碑不是精确财务截至日;超过金额与超过人数不推出精确ARPU。此前观测保留,不新增收入,不借Sacra派生算术把原稿变独立财务核验。" + }, + { + "id": "SACRA1-BASE-SACRA", + "companyId": "AI056", + "title": "Base44目录估算与收购后指标", + "url": "https://sacra.com/c/base44/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "Sacra明确估算8月ARR2亿,目录列2025成立及被Wix收购,并复述历次ARR里程碑/用户及积分模式。", + "limitation": "不把重复里程碑作为新增独立财务观测,也不将收购金额当估值之外的收入;付费率、分部净收入与估算底表未获,母公司及产品用户分开。" + }, + { + "id": "SACRA1-BASE-SEC", + "companyId": "AI056", + "title": "Base44所属集团财务定义与毛利预期", + "url": "https://www.sec.gov/Archives/edgar/data/1576789/000162828026052108/secondquarter2026results.htm", + "publishedAt": "2026-08-04", + "accessedAt": "2026-10-31", + "kind": "公开研究目录/公司与投资方原始资料核查", + "summary": "复核WixQ2附件相关段落:集团期末ARR和分部收入、Base44计算/推理成本及下半年约60%非GAAP毛利预期;定义纳含Base44的订阅MRR年化。", + "limitation": "仅读相关财务/定义段落;集团数字不是Base44独立经营收入,预测不是已实现毛利,不将Sacra估算与管理层预期视独立审计。没有新增或重定旧财务金额/日期。" } ], "reviews": [ @@ -104423,6 +104620,53 @@ "PHALL26-STORE-PRICE" ], "handling": "需实收/退款、活跃付费卖家、续费和合同版本,以及模型、工具、连接器与人工支持成本。官网用户/卖家数不等付费,店铺销售及广告预算不归平台营收;精确注册/团队/地点与独立技术效度缺,收入未知不填零。" + }, + { + "id": "SACRA1-R-DIRECTORY", + "type": "目录内部冲突、公开入口与成立/上线边界", + "company": "Sacra / Gimlet Labs", + "scope": "dataset", + "summary": "Sacra目录入口只有筛选外壳,四个档案为定向核查。Gimlet页首2023/正文2025、融资字段不齐;投资方2023与官网2025上线应分开。", + "evidenceIds": [ + "SACRA1-DIRECTORY", + "SACRA1-GIMLET-SACRA", + "SACRA1-GIMLET-HOME", + "SACRA1-GIMLET-ECLIPSE", + "SACRA1-GIMLET-LAUNCH" + ], + "handling": "不宣布全站或两年全量,Gimlet按投资方自述旧年暂范围外并留精确登记缺项;目录时间/方法未对齐不等公司财务造假,融资/估值/成本比较非ARR。" + }, + { + "id": "SACRA1-R-FINANCIAL", + "type": "重复估算、客户下界和集团/产品财务口径", + "company": "Peec AI / Base44", + "scope": "dataset", + "summary": "Sacra Peec/Base44明确估算并复述既有里程碑;Peec超过ARR/超过客户不能相除得精确ARPU,Base44所属Wix集团数字与预测不是独立产品财务。", + "evidenceIds": [ + "SACRA1-PEEC-SACRA", + "SACRA1-PEEC-ORIGINAL", + "SACRA1-BASE-SACRA", + "SACRA1-BASE-SEC" + ], + "handling": "不新增或改金额/日期,不把多篇复述当独立验证或复制历史收入。付费客户分母、期间/币种、会计/合同定义及估算底表继续缺;地点字段错误不照抄,也不由差异推造假。" + }, + { + "id": "SACRA1-R-GI", + "type": "世界模型公开产物与商业API收入分开", + "company": "General Intuition", + "companyIds": [ + "AI106" + ], + "scope": "companies", + "summary": "2025公司自述成立、MIRA官方代码可访问与有限合作API支持模型研究分类;营销网站条款明确与Medal分开。", + "evidenceIds": [ + "SACRA1-GI-SACRA", + "SACRA1-GI-HOME", + "SACRA1-GI-TERMS", + "SACRA1-GI-PROFILE", + "SACRA1-GI-CODE" + ], + "handling": "未运行/独立验证代码或数据/模型商用许可,不将公开产物升级独立测试;商业API合作未证付款,融资和Medal旧数据/用户非本公司ARR。需实际API合同、数据权利和训练/推理/支持成本、注册沿革与当前精确团队,收入未知。" } ], "coverage": { @@ -117441,6 +117685,80 @@ ] } ] + }, + { + "id": "S05-targeted-2026-1", + "sourceId": "S05", + "url": "https://sacra.com/explore/companies/", + "accessedAt": "2026-10-31", + "scope": "定向检索并打开Gimlet、General Intuition、Peec、Base44四个档案,非从目录外壳解析出的全量结果。3关联(仅General Intuition新增)、1按投资方2023暂范围外;目录结果/两年筛选全集仍缺。", + "complete": false, + "records": [ + { + "id": "SACRA1-C-GIMLET", + "name": "Gimlet Labs", + "url": "https://sacra.com/c/gimlet-labs/", + "categoryId": "C02", + "kind": "company", + "profileStatus": "readable", + "status": "outside-cohort", + "evidenceIds": [ + "SACRA1-GIMLET-SACRA", + "SACRA1-GIMLET-HOME", + "SACRA1-GIMLET-ECLIPSE", + "SACRA1-GIMLET-LAUNCH" + ], + "note": "投资方2023成立与官网2025公开发布分开,暂范围外。Sacra同页2023/2025及融资页首/正文不齐,保留差异不认财务造假;八位数收入/客户计算节省不填新公司ARR,非近名媒体公司。" + }, + { + "id": "SACRA1-C-GI", + "name": "General Intuition", + "url": "https://sacra.com/c/general-intuition/", + "categoryId": "C01", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "companyId": "AI106", + "evidenceIds": [ + "SACRA1-GI-SACRA", + "SACRA1-GI-HOME", + "SACRA1-GI-TERMS", + "SACRA1-GI-PROFILE", + "SACRA1-GI-CODE" + ], + "note": "公司官方主页2025和明确模型任务纳入AI106;MIRA公开代码为public-artifact,未复现。营销网站General Intuition US Inc.与Medal业务分开,商业API小量合作不是收入证据。" + }, + { + "id": "SACRA1-C-PEEC", + "name": "Peec AI", + "url": "https://sacra.com/c/peec/", + "categoryId": "C06", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "companyId": "AI055", + "evidenceIds": [ + "SACRA1-PEEC-SACRA", + "SACRA1-PEEC-ORIGINAL" + ], + "note": "关联已有AI055,不新增公司/财务观测。目录估算与公司客户下界不推出精确ARPU或独立验证,原地理字段不照抄。" + }, + { + "id": "SACRA1-C-BASE", + "name": "Base44", + "url": "https://sacra.com/c/base44/", + "categoryId": "C04", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "companyId": "AI056", + "evidenceIds": [ + "SACRA1-BASE-SACRA", + "SACRA1-BASE-SEC" + ], + "note": "关联已有AI056;估算复述里程碑不重复收入,集团ARR/分部收入及毛利预测不当产品独立财务。" + } + ] } ], "directoryRechecks": [ diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index b478d23..3c11d2b 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ph-all26-1", + "version": "2026-10-31-sacra-targeted-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2825,8 +2825,8 @@ "sacra.com" ], "initialAccess": "官网可读取", - "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。", - "nextCheck": "保留估算与公司披露差异,核实历史截至日。", + "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 本轮确认公开目录实际入口/explore/companies仅筛选外壳,另定向登记Gimlet/General Intuition/Peec/Base44四档案,非完整名单。General Intuition据公司自述2025及MIRA代码新增AI106;Gimlet投资方2023暂范围外,保留目录2023/2025及融资字段冲突;Peec/Base44复用既有公司和财务观测,无收入新增。", + "nextCheck": "保留估算与公司披露差异,核实历史截至日。 继续取得公开目录结果/两年筛选边界与估算方法底表;General Intuition注册/Medal沿革及商业API合同、Gimlet原始登记和财务口径、Peec真实付费分母、Base44产品独立收入及集团定义/毛利实际值仍缺。不能据四例宣布全站覆盖。", "limitation": "部分付费;不能把估算当审计数" }, { diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 57c1e37..2b5a849 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-ph-all26-1", + "sourceVersion": "2026-10-31-sacra-targeted-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From 0a640d75d4c75f77423f96639a841be6dbdc41b2 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:50:49 +0800 Subject: [PATCH 05/11] Resolve Ada company registration and shared ChartGen identity --- apps/docs/scripts/auth-cli.ts | 4 +- apps/docs/tests/research.test.ts | 14 +- content/research/ai-companies.seed.json | 160 ++++++++++++++++++++- content/research/ai-companies.sources.json | 6 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 168 insertions(+), 18 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index be45974..ce79240 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -182,9 +182,9 @@ 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, 1198); + assert.equal(research.companies.length, 1199); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4646); + assert.equal(research.evidence.length, 4653); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index fac49f4..3b12429 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -123,8 +123,8 @@ 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, 1198); - assert.equal(initial.evidence.length, 4646); + assert.equal(initial.companies.length, 1199); + assert.equal(initial.evidence.length, 4653); assert.equal(initial.observations.length, 453); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); @@ -164,7 +164,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, 209); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 210); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 44); const review = snapshot.reviews.find((r) => r.id === "R4")!; @@ -185,11 +185,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), 1198); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1199); assert.equal(summary.reduce((n, c) => n + c.self, 0), 58); assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 2); assert.equal(summary.reduce((n, c) => n + c.platform, 0), 19); - assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1119); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1120); 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 === "公司整体")); @@ -224,7 +224,7 @@ test("service run rates, legacy freight revenue and paid adoption do not become test("technical reviews keep accessible materials separate from tested capabilities", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; - assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 183); + assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 184); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 26); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1); assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown"); @@ -512,7 +512,7 @@ test("unreconciled directory financials remain source reviews instead of income assert.ok(review.evidenceIds.includes("PH-TANA-DR")); assert.equal(reviewCompanyIds(snapshot, review).length, 0); assert.ok(!snapshot.observations.some((o) => o.evidence === "PH-TANA-DR")); - assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 131); + assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 130); }); test("product pivots and founder histories do not become new company years or current revenue", () => { diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 7ddc8e3..bdf91e8 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-sacra-targeted-1", + "version": "2026-10-31-ada-entity-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -37690,6 +37690,51 @@ "SACRA1-GI-CODE" ] } + }, + { + "id": "AI107", + "name": "Ada.im / ChartGen AI", + "url": "https://ada.im/", + "channel": "S04", + "cat": "C05", + "year": 2025, + "team": null, + "location": null, + "business": "以LLM/Agent执行数据清洗、SQL查询、文档及分析报告,提供API/Dify连接。", + "buyer": "业务分析人员、企业团队和个人分析用户", + "delivery": "网页分析应用及API文档;实际质量、企业部署与活跃付费规模未独立验证", + "notes": "Deep Analysis法人2025注册与条款品牌相互对应,按同一公司登记,不将品牌更名拆成两家;业务首次运营/资产沿革仍待核。不合并近名Ada客服公司,示例客户收入和分析结果非本公司收入。", + "cohort": "条款运营者与ACRA同名唯一公司2025-06-04注册;不是仅依据2025产品发布", + "teamBasis": "ACRA董事人数非员工人数,精确现员未知", + "price": "有订阅/日票/积分与免费额度说明,现价入口无公开正文;币种、当前金额及企业合同待核", + "stage": "网页与公开文档可访问,收费规则有说明,未实际使用或独立测效", + "sourceType": "公司条款/文档、ACRA公开注册接口", + "evidenceIds": [ + "PHALL25-ADA-PH", + "PHALL25-ADA-HOME", + "PHALL25-ADA-TERMS", + "ADA1-REGISTRY", + "ADA1-TERMS", + "ADA1-HOME", + "ADA1-DOCS", + "ADA1-BILLING", + "ADA1-API", + "ADA1-PRICE-ACCESS" + ], + "revenueStatus": "unknown", + "businessModel": "数据分析订阅及积分消耗/API;日票、充值、赠送与经常性收入分开", + "entityBasis": "Deep Analysis Pte. Ltd.,ACRA UEN202524428Z;条款同名且列Ada.im/ChartGen,不把注册地址当实际所在地;集团及业务资产沿革待核", + "classificationBasis": "按横向数据分析/报告应用归C05,未证明自研基础模型或独立技术领先", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-10-31", + "summary": "官网及公开API/功能文档支持产品任务描述;未取得可复现实验、公开代码或独立测试,不接受无幻觉保证为实测结论。", + "evidenceIds": [ + "ADA1-HOME", + "ADA1-DOCS", + "ADA1-API" + ] + } } ], "observations": [ @@ -95915,6 +95960,83 @@ "kind": "公开研究目录/公司与投资方原始资料核查", "summary": "复核WixQ2附件相关段落:集团期末ARR和分部收入、Base44计算/推理成本及下半年约60%非GAAP毛利预期;定义纳含Base44的订阅MRR年化。", "limitation": "仅读相关财务/定义段落;集团数字不是Base44独立经营收入,预测不是已实现毛利,不将Sacra估算与管理层预期视独立审计。没有新增或重定旧财务金额/日期。" + }, + { + "id": "ADA1-REGISTRY", + "companyId": "AI107", + "title": "Deep Analysis官方注册记录", + "url": "https://data.gov.sg/api/action/datastore_search?resource_id=d_acbc938ec77af18f94cecc4a7c9ec720&q=202524428Z&limit=5", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "ACRA公开接口唯一记录:DEEP ANALYSIS PTE. LTD.,UEN202524428Z,2025-06-04注册,Live Company。", + "limitation": "仅读登记字段;董事3名不是员工,登记地址不等实际办公室,注册日不等产品首发或实际经营起点;数据集按月更新。" + }, + { + "id": "ADA1-TERMS", + "companyId": "AI107", + "title": "Ada与ChartGen同一条款主体", + "url": "https://ada.im/docs/termOfService", + "publishedAt": "2026-01-16", + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "条款列Deep Analysis Pte. Ltd.,并将ChartGen、Ada.im与Deep Analysis列为公司商标;服务为AI数据分析应用。", + "limitation": "名称与官方登记匹配,但条款未印UEN;不合并加拿大Ada客服等近名公司。自动续费条款表述需以实际订单核,商标自述非独立商标查册。" + }, + { + "id": "ADA1-HOME", + "companyId": "AI107", + "title": "Ada当前数据分析产品", + "url": "https://ada.im/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "官网描述LLM/Agent清洗数据、SQL与报告;提供文件上传和多源连接,文档转ChartGen。", + "limitation": "未上传或运行产品;消除幻觉/企业级等宣传不作效果实证,评价人数不作付费规模。" + }, + { + "id": "ADA1-DOCS", + "companyId": "AI107", + "title": "ChartGen同域文档与应用范围", + "url": "https://ada.im/docs", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "同域介绍ChartGen的数据与文档报告、词汇表及技能功能,给出业务指标分析示例。", + "limitation": "示例收入增长不是公司实际经营结果;工具名称变化不新增另一家公司,首次业务及资产沿革仍待核。" + }, + { + "id": "ADA1-BILLING", + "companyId": "AI107", + "title": "ChartGen积分与订阅规则", + "url": "https://ada.im/docs/billingFAQ", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "计费文档区分日票、月订阅/邀请、补充积分与免费额度,购买积分三个月失效;订阅可取消续费,原价格跳转billing。", + "limitation": "未取得可读完整价格或合同订单;积分/免费试用/邀请奖励不等已付费收入,名义额度和退款约束不推续费或毛利。" + }, + { + "id": "ADA1-API", + "companyId": "AI107", + "title": "ChartGen API与Dify连接说明", + "url": "https://ada.im/docs/api", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "文档提供API Key服务及Dify集成,按积分计费、可设每Key月限额。", + "limitation": "只读文档,不生成Key、不执行API或插件;接口说明非独立质量测试,不提升公开代码或独立实测等级。" + }, + { + "id": "ADA1-PRICE-ACCESS", + "companyId": "AI107", + "title": "ChartGen现价入口可读缺项", + "url": "https://chartgen.ai/billing", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料与官方注册补核", + "summary": "从官方计费FAQ打开价格入口,公开响应只有跟踪iframe,无套餐价格正文。", + "limitation": "不以旧目录价格替当前值,不登录或下单;确切币种、价格和付费分母仍缺。" } ], "reviews": [ @@ -104667,6 +104789,26 @@ "SACRA1-GI-CODE" ], "handling": "未运行/独立验证代码或数据/模型商用许可,不将公开产物升级独立测试;商业API合作未证付款,融资和Medal旧数据/用户非本公司ARR。需实际API合同、数据权利和训练/推理/支持成本、注册沿革与当前精确团队,收入未知。" + }, + { + "id": "ADA1-R-ENTITY", + "type": "登记、品牌统一与积分收入边界", + "company": "Ada.im / ChartGen AI", + "companyIds": [ + "AI107" + ], + "scope": "companies", + "summary": "ACRA2025注册与同名运营者条款及两品牌相互支持,将PH待核候选关联同一公司;不重复按产品计数。", + "evidenceIds": [ + "ADA1-REGISTRY", + "ADA1-TERMS", + "ADA1-HOME", + "ADA1-DOCS", + "ADA1-BILLING", + "ADA1-API", + "ADA1-PRICE-ACCESS" + ], + "handling": "注册日不代实际经营起点,品牌/资产历史、条款无UEN仍需后续核。董事非员工、注册地址非办公点;免费/邀请/补充积分和分析示例不作公司ARR,价格/付费用户/成本仍缺。公开文档非公开代码或独立实验,不据无幻觉宣传升级技术等级。" } ], "coverage": { @@ -117059,7 +117201,7 @@ "sourceId": "S04", "url": "https://www.producthunt.com/leaderboard/yearly/2025/all", "accessedAt": "2026-10-31", - "scope": "2025年度All入口首次公开响应19张文字卡片,9项为原38卡外产品;复用已有候选对应并逐项记录新资料。14范围外、4年份待核、1推广,仅图片Framer位置和未取得分页保留缺项,不代表全年或新成立公司全量。", + "scope": "2025年度All入口首次公开响应19张文字卡片,9项为原38卡外产品;复用已有候选对应并逐项记录新资料。当前1关联(Ada/ChartGen经ACRA与条款补核AI107)、14范围外、3年份待核、1推广;仅图片Framer位置和未取得分页保留缺项,不代表全年或新成立公司全量。", "complete": false, "records": [ { @@ -117317,14 +117459,22 @@ "categoryId": "C05", "kind": "product", "profileStatus": "readable", - "status": "pending-year", + "status": "linked", "evidenceIds": [ "PHALL25-PAGE", "PHALL25-ADA-PH", "PHALL25-ADA-HOME", - "PHALL25-ADA-TERMS" + "PHALL25-ADA-TERMS", + "ADA1-REGISTRY", + "ADA1-TERMS", + "ADA1-HOME", + "ADA1-DOCS", + "ADA1-BILLING", + "ADA1-API", + "ADA1-PRICE-ACCESS" ], - "note": "AI数据清洗/SQL/报告,反链条款为ChartGen/Deep Analysis Pte. Ltd.且含Ada商标;主体成立及品牌沿革未核,2025发布不填成立年。订阅/积分/退款与真实收入分开,不合并近名Ada。" + "note": "ACRA唯一同名Deep Analysis Pte. Ltd.于2025-06-04注册,官网条款同运营者并列Ada.im/ChartGen商标,关联AI107同一公司。现价入口无正文、团队/实际地点及付费收入未知;注册与经营起点分开,业务/资产沿革待核,不合并近名Ada。", + "companyId": "AI107" }, { "id": "PHALL25-C18", diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 3c11d2b..a5b3d01 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-sacra-targeted-1", + "version": "2026-10-31-ada-entity-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2810,8 +2810,8 @@ "producthunt.com" ], "initialAccess": "官网可读取", - "boundary": "两年公开响应各19条,共38条。当前5条关联公司、2条范围外对照、26条范围外/既有业务、3条年份待核、2条推广。旧版本、品牌与法律主体分开,Tapflow据2024原版记录排除,Happycapy仍待核;非两年全量。 Pazi补既有业务链后范围外,保留字段冲突;Happycapy iOS销售方与ACRA注册日已核,全球产品/旧业务沿革仍待核。 后续核All独立入口,2025首屏新增19条发现位置(9项原38卡外产品),逐项登记14范围外/4年份待核/1推广;累计57条位置非独立公司。LilysAI/Readray2023沿革、Dreamina集团、Welltory2016、TrueFoundry2021和VidAU2024旧产品分开;Ada/ChartGen、EZsite/EasySite及Duix主体年份留缺。2026 All另读19卡尚待逐项登记,page=2两年均浏览工具不可访问,非证明无末页;原Featured快照不回写,无主公司/收入新增。 后续2026 All19文字卡逐项登记(9项原Featured之外),3关联位置/2既有范围外/7范围外/6年份待核/1推广;Base44和Goldfish复用,StoreClaw官网2026及第三方LLM电商任务新增AI105。四批累计76发现位置非独立公司,原批次保持,无收入观测新增。Fathom/Tencent/Viktor旧业务、Codity2025/2024与创始差异、Spira合同/占位、Acti与Polly主体年份分开。", - "nextCheck": "继续补两年其余分页/日期、仅图片位置及3条年份待核候选;保留Pazi日期冲突与旧业务排除依据,核清其余品牌与主体,避免转移历史业绩。 Happycapy的新加坡销售法人不自动等新创业;继续补网页签约方与集团业务沿革。 优先登记2026 All19文字卡及与Base44等已有公司映射,补2025 All新增Duix/Ada/EZsite主体成立/合同、Story目录缓存至正文/运营链,保留近名域区别。首次All响应非全量分页,其他日期与图片位置继续缺项。 2026 All本首屏逐项已有记录;继续Codity美印登记与旧域/创始沿革,Acti TypeX、Spira、PollyReach正式主体/成立及产品合同版本,StoreClaw实收/续费和推理工具成本;四批有限首屏不替全年、分页及仅图片位置核查。", + "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。", + "nextCheck": "继续补两年其余分页/日期及仅图片位置;Fundraisly、Happycapy、MGX/Atoms、Duix、EZsite、Acti TypeX、Spira、Codity、PollyReach的未决主体/年份/旧业务链。保留Pazi、Zeta旧业务与年份冲突证据,不转移历史收入。Ada/ChartGen已核同名公司注册与品牌关联,仍缺业务资产沿革、实际办公/团队、当前价格/币种、付费/续费和推理/报告成本;StoreClaw实收与工具成本待核。有限首屏不替全年全量。", "limitation": "上线时间不等于成立时间", "accessRecheckedAt": "2026-10-30" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 2b5a849..4f486ad 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-sacra-targeted-1", + "sourceVersion": "2026-10-31-ada-entity-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From c833aa56c122e5f6821e66479f4779988ddb5704 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sat, 31 Oct 2026 23:55:03 +0800 Subject: [PATCH 06/11] Trace DUIX and EZsite legacy businesses and licensing boundaries --- apps/docs/scripts/auth-cli.ts | 2 +- apps/docs/tests/research.test.ts | 4 +- content/research/ai-companies.seed.json | 212 ++++++++++++++++++++- content/research/ai-companies.sources.json | 6 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 214 insertions(+), 12 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index ce79240..8b14313 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -184,7 +184,7 @@ async function main() { const research = await researchResponse.json(); assert.equal(research.companies.length, 1199); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4653); + assert.equal(research.evidence.length, 4667); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 3b12429..6a798eb 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -124,7 +124,7 @@ test("research revisions share the authentication database and preserve replay l assert.equal(consumeCode(config, "invalid"), "limited"); const initial = readResearchSnapshot(); assert.equal(initial.companies.length, 1199); - assert.equal(initial.evidence.length, 4653); + assert.equal(initial.evidence.length, 4667); assert.equal(initial.observations.length, 453); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); @@ -166,7 +166,7 @@ test("reviews link explicit companies without turning global or excluded cases i const snapshot = structuredClone(seed) as ResearchSnapshot; assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 210); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); - assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 44); + assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 46); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); assert.deepEqual(reviewCompanyIds(snapshot, snapshot.reviews.find((r) => r.id === "CN-R-PSI")!), []); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index bdf91e8..afd48ad 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ada-entity-1", + "version": "2026-10-31-duix-ez-entity-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -96037,6 +96037,160 @@ "kind": "公司原始资料与官方注册补核", "summary": "从官方计费FAQ打开价格入口,公开响应只有跟踪iframe,无套餐价格正文。", "limitation": "不以旧目录价格替当前值,不登录或下单;确切币种、价格和付费分母仍缺。" + }, + { + "id": "ENTITY2-DUIX-FILING", + "companyId": null, + "title": "硅基智能申请稿中的成立与DUIX沿革", + "url": "https://www1.hkexnews.hk/app/sehk/2026/108560/documents/sehk26052101521.pdf", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "申请稿定义及历史章列2017-08-08成立、2025-02-18股份制转换,历史章列2022年6月GJ DUIX平台及2024年11月DUIX ONE。", + "limitation": "只读定义/历史及相关业务段落,不代表全稿审阅;股份制转换不重置成立年。稿件明确未定稿,未见duix.com域名对应,不直接确认当前海外签约主体或把集团财务归新产品。" + }, + { + "id": "ENTITY2-DUIX-ABOUT", + "companyId": null, + "title": "DUIX官网研究与海外团队自述", + "url": "https://www.duix.com/about", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "官网称数字人研究实验室,在新加坡设国际团队并列投资方,但无成立年或清晰签约法人。", + "limitation": "专利/投资方/海外支持自述不证明新加坡新创业或独立技术领先;与集团旧业务的资产/合同链仍缺。" + }, + { + "id": "ENTITY2-DUIX-CODE", + "companyId": null, + "title": "DUIX旧仓库入口重定向及现官方反链", + "url": "https://github.com/GuijiAI/duix.ai", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "原GuijiAI/duix.ai重定向duixcom/Duix-Mobile,README反链duix.com并提供Android/iOS代码目录及SDK说明。", + "limitation": "仅阅读公开文件与导航,未执行/下载模型;重定向支持项目延续线索不证明法人成立/资产转让。公开代码非独立效果测试,延迟宣传不作实测。" + }, + { + "id": "ENTITY2-DUIX-LICENSE", + "companyId": null, + "title": "DUIX代码许可中的商用限制", + "url": "https://raw.githubusercontent.com/duixcom/Duix-Mobile/main/LICENSE", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "现LICENSE为社区许可,要求署名,使用方或关联产品月活超过1000涉及另行许可授权。", + "limitation": "仅记原文限制用于商业模式评估,非法律意见或许可审计。不能把公开仓库等同无条件免费商用;许可中的主体表述不替注册核验。" + }, + { + "id": "ENTITY2-DUIX-DOCS", + "companyId": null, + "title": "DUIX云API分钟与免费额度", + "url": "https://docs.duix.com/documentation/introduction", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "官网SDK文档区分云API会话分钟、付费套餐及免费额度,并反链官方公司主页及GitHub组织。", + "limitation": "云API计费与本地SDK许可分开;没有调用API或创建Key,免费API可用不等无付费或零收入。" + }, + { + "id": "ENTITY2-DUIX-PROFILE", + "companyId": null, + "title": "DUIX官方主页未列成立年", + "url": "https://www.linkedin.com/company/duixavatar", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "官方文档反链主页同域名,列新加坡、11—50规模范围与可见成员,未列Founded。", + "limitation": "Public Company自报字段未核上市身份,不据此当上市公司;范围/成员非精确员工,地点/相对发布日不补成立年。不同Smart Intelligence近名主页不直接合并。" + }, + { + "id": "ENTITY2-DUIX-TERMS-ACCESS", + "companyId": null, + "title": "DUIX条款仍仅导航外壳", + "url": "https://www.duix.com/terms-of-service", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "本次再读条款只见计划提示、导航和页脚,未获正文签约主体。", + "limitation": "旧集团与当前网站法律关系继续缺,网页版权/产品发布年非新公司成立证据。" + }, + { + "id": "ENTITY2-EZ-TERMS-CACHE", + "companyId": null, + "title": "EZsite条款缓存中的运营者与收费", + "url": "https://ezsite.ai/terms-of-service", + "publishedAt": "2025-03-07", + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "搜索缓存正文称New Oaks LLC运营EZsite、服务含ezsite.ai,付款须美元;还含Paste/Paper应用措辞。", + "limitation": "直接打开仍超时,仅缓存可读;不把模板措辞或缓存日期当精确注册/最新有效合同。退款/定价应核实际订单,NewOaks AI与LLC对应仍需原始登记。" + }, + { + "id": "ENTITY2-EZ-HOME", + "companyId": null, + "title": "EZsite同域更名与NewOaks嵌入", + "url": "https://ezsite.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "当前官网确认原EasySite AI并列2025发布,页脚嵌入www.newoaks.ai。", + "limitation": "更名、产品发布与共用组件不是公司成立证明;只说明业务关联线索,不套近名网站或Newo.ai公司信息。" + }, + { + "id": "ENTITY2-EZ-LTD", + "companyId": null, + "title": "EZsite终身方案与创始团队自述", + "url": "https://ezsite.ai/ltd/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "FAQ称CEO Ray Luan及MRR增长;终身方案、一次赠送额度、BYOK另列,并给30日退款说法。", + "limitation": "无MRR金额/财务截至日不增观测。终身一次性销售/赠送不能年化ARR;与缓存条款7日退款存在版本/方案差异待核,不据此判欺诈。" + }, + { + "id": "ENTITY2-NEWOAKS-TERMS", + "companyId": null, + "title": "NewOaks既有服务条款日期", + "url": "https://www.newoaks.ai/terms", + "publishedAt": "2023-03-02", + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "官网条款标2023-03-02修改,运营者写NewOaks AI及订阅/API服务。", + "limitation": "页面日期是自述旧服务线索,不是法人登记;未给New Oaks LLC完整注册号,不能仅同名将EZsite归入旧主体。" + }, + { + "id": "ENTITY2-NEWOAKS-HISTORY", + "companyId": null, + "title": "NewOaks公司文章明确2023业务", + "url": "https://www.newoaks.ai/blog/zendesk-alternatives-newoaks-ai-2025/", + "publishedAt": "2025-02-26", + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "原站文章署Ray,描述平台从房地产拓至其他行业的业务在2023年底已存在。", + "limitation": "仅读相关沿革段落,不认可营销效果比较为独立测试;文章自述旧业务与EZsite实际主体/资产链仍需对应,不转移旧公司收入。" + }, + { + "id": "ENTITY2-NEWOAKS-LETTER", + "companyId": null, + "title": "NewOaks2024经营回顾与网页日期差异", + "url": "https://www.newoaks.ai/blog/2025visionletter/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "原站信件回顾2024业务,正文署CEO Ray Luan及2024-12-31;页首2024-12-30而其他缓存显示2026。", + "limitation": "保留页面/正文/索引日期差异,不择一当成立或财务日;经营回顾支持旧业务,不证明LLC登记或新旧产品资产转移。" + }, + { + "id": "ENTITY2-EZ-PRIVACY", + "companyId": null, + "title": "EZsite隐私页品牌与合同完整性", + "url": "https://ezsite.ai/privacy-policy", + "publishedAt": "2025-03-07", + "accessedAt": "2026-10-31", + "kind": "公司原始资料/公开代码许可与主体沿革补核", + "summary": "隐私正文以EZsite及ezsite.ai为服务定义,提供美国数据处理描述,页首仍显示产品介绍。", + "limitation": "隐私生效日不等成立;未提供可独立核验的完整注册信息,不把处理地点当办公室。多个页面的价格片段不替当前完整套餐/合同。" } ], "reviews": [ @@ -104809,6 +104963,40 @@ "ADA1-PRICE-ACCESS" ], "handling": "注册日不代实际经营起点,品牌/资产历史、条款无UEN仍需后续核。董事非员工、注册地址非办公点;免费/邀请/补充积分和分析示例不作公司ARR,价格/付费用户/成本仍缺。公开文档非公开代码或独立实验,不据无幻觉宣传升级技术等级。" + }, + { + "id": "ENTITY2-R-DUIX", + "type": "旧业务线索、当前主体与商业收费边界", + "company": "DUIX / 硅基智能", + "scope": "excluded-candidate", + "summary": "申请稿与项目重定向支持旧DUIX技术/业务线索,不能把2025发布/股份制转换认作新公司;当前签约主体仍缺。", + "evidenceIds": [ + "ENTITY2-DUIX-FILING", + "ENTITY2-DUIX-ABOUT", + "ENTITY2-DUIX-CODE", + "ENTITY2-DUIX-LICENSE", + "ENTITY2-DUIX-DOCS", + "ENTITY2-DUIX-PROFILE", + "ENTITY2-DUIX-TERMS-ACCESS" + ], + "handling": "保持候选待核、无公司/财务新增。云服务分钟/免费额度与本地SDK商业许可分开;源码公开不等模型/数据可任意商用,不独立测效。需海外登记、与集团合同及资产授权对应。" + }, + { + "id": "ENTITY2-R-EZ", + "type": "旧业务线索、当前主体与商业收费边界", + "company": "EZsite / NewOaks", + "scope": "excluded-candidate", + "summary": "同CEO与域间嵌入、缓存运营者和NewOaks2023旧业务支持关联线索,LLC登记及实际主体关系仍缺。", + "evidenceIds": [ + "ENTITY2-EZ-TERMS-CACHE", + "ENTITY2-EZ-HOME", + "ENTITY2-EZ-LTD", + "ENTITY2-NEWOAKS-TERMS", + "ENTITY2-NEWOAKS-HISTORY", + "ENTITY2-NEWOAKS-LETTER", + "ENTITY2-EZ-PRIVACY" + ], + "handling": "保持候选待核,不把共同创始人/产品更名代法律沿革。MRR增长无金额/截至日不作财务观测,终身/赠送不年化ARR;7/30日退款可能方案/版本不同,待核不判造假,旧NewOaks收入不转移。" } ], "coverage": { @@ -117388,9 +117576,16 @@ "PHALL25-PAGE", "PHALL25-DUIX-PH", "PHALL25-DUIX-HOME", - "PHALL25-DUIX-TERMS" + "PHALL25-DUIX-TERMS", + "ENTITY2-DUIX-FILING", + "ENTITY2-DUIX-ABOUT", + "ENTITY2-DUIX-CODE", + "ENTITY2-DUIX-LICENSE", + "ENTITY2-DUIX-DOCS", + "ENTITY2-DUIX-PROFILE", + "ENTITY2-DUIX-TERMS-ACCESS" ], - "note": "实时多语AI头像/SDK服务,2025产品发布/版权非成立证据,条款仅外壳未取得主体;当前年包不可用/免费试用不推零收入,开源入口未核,不提升技术等级。" + "note": "已补硅基智能申请稿2017成立、2022平台/2024 DUIX ONE,以及GuijiAI旧仓库重定向现duixcom项目线索;2025发布非新公司证据。官网/文档有云API分钟及本地社区许可,公开代码未执行。当前条款仍外壳,海外签约法人及旧业务资产/合同链未完全对应,保持年份待核,不借集团业绩入收入表。" }, { "id": "PHALL25-C13", @@ -117504,9 +117699,16 @@ "PHALL25-EZ-PH", "PHALL25-EZ-HOME", "PHALL25-EZ-PRICE", - "PHALL25-EZ-TERMS-ACCESS" + "PHALL25-EZ-TERMS-ACCESS", + "ENTITY2-EZ-TERMS-CACHE", + "ENTITY2-EZ-HOME", + "ENTITY2-EZ-LTD", + "ENTITY2-NEWOAKS-TERMS", + "ENTITY2-NEWOAKS-HISTORY", + "ENTITY2-NEWOAKS-LETTER", + "ENTITY2-EZ-PRIVACY" ], - "note": "年度链接现EZsite,同域官网明确原EasySite AI,产品2025上线不作公司成立。条款超时,保留主体年份缺;不套不同域easysite.ai/其他EasySite年份。月付/按量BYOK/终身及非失效积分分开,无收入新增。" + "note": "官网原EasySite AI/现EZsite、CEO Ray Luan及NewOaks嵌入,条款缓存New Oaks LLC;NewOaks原站2023业务/2024回顾支持旧事业线索。但LLC完整登记及品牌资产/合同关系未核,保持年份待核,不把新产品自动计新公司。终身销售/赠送/BYOK与订阅分开,退款7/30日版本及当前有效合同待核,无收入新增。" } ] }, diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index a5b3d01..6456e69 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ada-entity-1", + "version": "2026-10-31-duix-ez-entity-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2810,8 +2810,8 @@ "producthunt.com" ], "initialAccess": "官网可读取", - "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。", - "nextCheck": "继续补两年其余分页/日期及仅图片位置;Fundraisly、Happycapy、MGX/Atoms、Duix、EZsite、Acti TypeX、Spira、Codity、PollyReach的未决主体/年份/旧业务链。保留Pazi、Zeta旧业务与年份冲突证据,不转移历史收入。Ada/ChartGen已核同名公司注册与品牌关联,仍缺业务资产沿革、实际办公/团队、当前价格/币种、付费/续费和推理/报告成本;StoreClaw实收与工具成本待核。有限首屏不替全年全量。", + "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。 DUIX补申请稿旧平台/股份转换、仓库重定向与现许可;EZsite补CEO/跨域嵌入、条款缓存和NewOaks旧业务,两候选当前签约/资产链仍缺,保持待核,不增公司或收入。", + "nextCheck": "继续补两年其余分页/日期及仅图片位置;Fundraisly、Happycapy、MGX/Atoms、Duix、EZsite、Acti TypeX、Spira、Codity、PollyReach的未决主体/年份/旧业务链。保留Pazi、Zeta旧业务与年份冲突证据,不转移历史收入。Ada/ChartGen已核同名公司注册与品牌关联,仍缺业务资产沿革、实际办公/团队、当前价格/币种、付费/续费和推理/报告成本;StoreClaw实收与工具成本待核。有限首屏不替全年全量。 DUIX现海外签约登记及集团授权关系、云分钟/本地SDK模型许可;EZsite New Oaks LLC登记及NewOaks业务资产衔接、有效7/30日退款与终身/订阅合同优先补核。", "limitation": "上线时间不等于成立时间", "accessRecheckedAt": "2026-10-30" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 4f486ad..2c523d0 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-ada-entity-1", + "sourceVersion": "2026-10-31-duix-ez-entity-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From 5b31fa5b77437706ce09d5c0b4280143b739390d Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:00:35 +0800 Subject: [PATCH 07/11] Connect evidence-backed business model assessments to company categories --- .../docs/src/components/AICompanyResearch.tsx | 6 +- .../components/BusinessModelAssessment.tsx | 32 +++++++++ apps/docs/src/lib/ai-research.ts | 1 + apps/docs/tests/research.test.ts | 9 ++- content/research/ai-companies.seed.json | 68 ++++++++++++++++++- content/research/ai-companies.sources.json | 2 +- content/research/ai-income-analysis.json | 2 +- 7 files changed, 113 insertions(+), 7 deletions(-) create mode 100644 apps/docs/src/components/BusinessModelAssessment.tsx diff --git a/apps/docs/src/components/AICompanyResearch.tsx b/apps/docs/src/components/AICompanyResearch.tsx index bfa40e9..45fd7d3 100644 --- a/apps/docs/src/components/AICompanyResearch.tsx +++ b/apps/docs/src/components/AICompanyResearch.tsx @@ -2,6 +2,7 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { useRouter } from "next/router"; import IncomeDistribution from "./IncomeDistribution"; import ArrDisclosures from "./ArrDisclosures"; +import BusinessModelAssessment from "./BusinessModelAssessment"; import { categorySummary, evidenceUrl, technicalReviewLabels, reviewCompanyIds, type ResearchEvidence, type ResearchReview, type ResearchSnapshot, } from "@/lib/ai-research"; @@ -56,7 +57,7 @@ export default function AICompanyResearch() { : router.isReady && typeof linkedCompany === "string" && data?.companies.some((c) => c.id === linkedCompany) ? linkedCompany : null; function setSelected(id: string | null) { setSelection({ route: router.asPath, id }); } - const [tab, setTab] = useState<"companies" | "revenue" | "sources" | "reviews">("companies"); + const [tab, setTab] = useState<"companies" | "revenue" | "models" | "sources" | "reviews">("companies"); const companySection = useRef(null); const detailSection = useRef(null); useEffect(() => { @@ -128,7 +129,7 @@ export default function AICompanyResearch() {

研究数据

- {([['companies','公司与产品'],['revenue','收入观测'],['sources','原始证据'],['reviews','核查记录']] as const).map(([id,label]) => + {([['companies','公司与产品'],['revenue','收入观测'],['models','商业模式初评'],['sources','原始证据'],['reviews','核查记录']] as const).map(([id,label]) => )}
{tab === "companies" && <> @@ -153,6 +154,7 @@ export default function AICompanyResearch() { {!filtered.length &&

没有匹配公司,请调整筛选条件。

} {filtered.length > pageSize && } } + {tab === "models" && } {tab === "revenue" && <> diff --git a/apps/docs/src/components/BusinessModelAssessment.tsx b/apps/docs/src/components/BusinessModelAssessment.tsx new file mode 100644 index 0000000..6ec05d8 --- /dev/null +++ b/apps/docs/src/components/BusinessModelAssessment.tsx @@ -0,0 +1,32 @@ +import { businessModelReviewType, evidenceUrl, reviewCompanyIds, type ResearchSnapshot } from "@/lib/ai-research"; + +export default function BusinessModelAssessment({ data, onSelect, onChooseCategory }: { + data: ResearchSnapshot; onSelect: (id: string) => void; onChooseCategory: (id: string) => void; +}) { + const reviews = data.reviews.filter((review) => review.type === businessModelReviewType && review.scope === "companies"); + const evidence = new Map(data.evidence.map((item) => [item.id, item])); + return
+

商业模式初评

+

从已核个案提炼收费方式、成本约束与下一步验证条件。已知事实与研究判断分列;同一种收费方式可以跨业务分类,以下个案不能代表整个行业。

+

这是基于当前证据的初步评估,不是收入预测或盈利排名。判断能否用于我们的业务,还需用实际客户任务、付费留存与交付成本验证;ARR 或平台 MRR 单独不能证明利润。

+ {reviews.length ?
+ + + {reviews.map((review) => { + const companyIds = new Set(reviewCompanyIds(data, review)); + const companies = data.companies.filter((company) => companyIds.has(company.id)); + const categories = data.categories.filter((category) => companies.some((company) => company.cat === category.id)); + return + + + + ; + })} +
收费模式与业务分类、公司明细及原始证据相互关联
模式 / 业务分类已核事实初步判断 / 验证条件参考个案与证据
{review.company}
{categories.map((category) => )}
{review.summary}{review.handling}
{companies.map((company) => )}
+
{review.evidenceIds.map((id) => { + const item = evidence.get(id); const url = item && evidenceUrl(item.url); + return item && url ?

{item.title} ↗

: null; + })}
+
:

当前数据版本尚未记录商业模式初评。

} +
; +} diff --git a/apps/docs/src/lib/ai-research.ts b/apps/docs/src/lib/ai-research.ts index d37cef0..0bd777c 100644 --- a/apps/docs/src/lib/ai-research.ts +++ b/apps/docs/src/lib/ai-research.ts @@ -1,4 +1,5 @@ export type ResearchCategory = { id: string; name: string; description: string }; +export const businessModelReviewType = "商业模式初评"; export const technicalReviewLabels = { unreviewed: "技术证据尚未专项评审", description: "已读技术自述", diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 6a798eb..a08a777 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -8,7 +8,7 @@ import coverageAudit from "../../../content/research/ai-companies.coverage.json" import incomeReference from "../../../content/research/ai-income-analysis.json"; import { readResearchSnapshot } from "../src/lib/ai-research-store"; import { openSiteDatabase } from "../src/lib/site-database"; -import { categorySummary, evidenceUrl, reviewCompanyIds, validateResearch, type ResearchSnapshot } from "../src/lib/ai-research"; +import { businessModelReviewType, categorySummary, evidenceUrl, reviewCompanyIds, validateResearch, type ResearchSnapshot } from "../src/lib/ai-research"; import { consumeCode, initializeStore } from "../src/lib/auth-store"; import { newAuthConfig } from "../src/lib/auth"; import { arrDisclosureCoverage, arrDisclosures, arrFieldGaps, compareIncomeGroups, describeIncome, groupIncome, platformIncomeSample } from "../src/lib/research-statistics"; @@ -126,6 +126,11 @@ test("research revisions share the authentication database and preserve replay l assert.equal(initial.companies.length, 1199); assert.equal(initial.evidence.length, 4667); assert.equal(initial.observations.length, 453); + const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType); + assert.equal(businessReviews.length, 4); + assert.deepEqual(businessReviews, seed.reviews.filter((review) => review.type === businessModelReviewType) + .sort((a, b) => a.id.localeCompare(b.id)), + "business model assessments and company/evidence links persist in the shared database"); assert.deepEqual(initial.candidateBatches, seed.candidateBatches, "candidate gaps persist in the same database metadata"); assert.deepEqual(initial.directoryRechecks, seed.directoryRechecks, "follow-up classifications persist without rewriting the discovery audit"); assert.deepEqual(readResearchSnapshot(), initial, "reopening does not duplicate records"); @@ -164,7 +169,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, 210); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 214); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 46); const review = snapshot.reviews.find((r) => r.id === "R4")!; diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index afd48ad..a71eb3a 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-duix-ez-entity-1", + "version": "2026-10-31-business-models-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -104997,6 +104997,72 @@ "ENTITY2-EZ-PRIVACY" ], "handling": "保持候选待核,不把共同创始人/产品更名代法律沿革。MRR增长无金额/截至日不作财务观测,终身/赠送不年化ARR;7/30日退款可能方案/版本不同,待核不判造假,旧NewOaks收入不转移。" + }, + { + "id": "MODEL1-APP-CREDITS", + "type": "商业模式初评", + "company": "应用订阅+消耗额度", + "companyIds": [ + "AI056", + "AI105", + "AI107" + ], + "scope": "companies", + "summary": "已核事实:Base44以消息/集成额度分档,StoreClaw有订阅及充值,ChartGen另有日票/免费和购买积分。价表说明收费设计,未证明这些公司的付费留存或单位交付利润;免费/赠送与订阅收入分开。", + "evidenceIds": [ + "ARRCHECK2-BASE-PRICE", + "PHALL26-STORE-PRICE", + "ADA1-BILLING" + ], + "handling": "待验证判断:若客户持续重复同类任务,基础订阅可覆盖持续服务,消耗额度可约束重度使用成本。我们的试验应逐任务记录退款后实收、模型/工具/托管/人工支持成本、失败重试和30/90日付费留存;同时比较少量高消耗账户。只有净贡献与留存同时支持才扩大,不能用注册用户乘标价推ARR;年付现金、积分充值与当期收入需分。" + }, + { + "id": "MODEL1-MARKETING", + "type": "商业模式初评", + "company": "面向营销团队的持续监测订阅", + "companyIds": [ + "AI055" + ], + "scope": "companies", + "summary": "已核事实:Peec按提示词、模型和项目分档,席位不限,提供不同API权限及Agent额度;公司发布客户和ARR声明,但客户总数未证全部付费,两个下界不能推出精确单客收入。", + "evidenceIds": [ + "PEEC-PRICE", + "ARRCHECK2-PEEC-API", + "SACRA1-PEEC-ORIGINAL" + ], + "handling": "待验证判断:若客户在每个周期都要监测并据结果采取行动,持续工作流可能支持续费。我们的验证应比较无工具时的基线、客户实际行动/复用频率、付费续费及扩张、数据采集和人工解释成本;区分品牌直客与代理分销。不把可见度提升自动归因于销售收入,也不据一个增长案例认定整个营销领域更优。" + }, + { + "id": "MODEL1-GATEWAY", + "type": "商业模式初评", + "company": "模型网关:用量、平台费与订阅并存", + "companyIds": [ + "MR017" + ], + "scope": "companies", + "summary": "已核事实:LLM Gateway的API有用量和平台费、BYOK及企业安排,另有DevPass/Lounge订阅。现价不是历史收入拆分证据;平台MRR为历史快照且连接过期,不能当当前纯SaaS净收入。", + "evidenceIds": [ + "MR2-LLM-PRICE", + "MR2-LLM-TERMS", + "MR2-LLM-WEB" + ], + "handling": "待验证判断:若客户愿为路由、治理或可靠性支付独立服务费,才可能有区别于模型成本转售的价值。我们的验证需把充值、供应商成本、实际使用、平台净费和订阅分账,测量每付费项目的留存/净贡献、故障及支持成本;只按合同可持续服务部分评价经常性。一个平台产品不能代表基础设施行业均值。" + }, + { + "id": "MODEL1-WORLD-API", + "type": "商业模式初评", + "company": "自研模型:研究产物到商业API", + "companyIds": [ + "AI106" + ], + "scope": "companies", + "summary": "已核事实:General Intuition有MIRA公开代码,官网称少量合作方接入商业API,未取得价格/付费合同。营销网站条款与Medal旧服务分离,融资及旧平台数据/用户不作新公司收入,代码未独立运行。", + "evidenceIds": [ + "SACRA1-GI-HOME", + "SACRA1-GI-CODE", + "SACRA1-GI-TERMS" + ], + "handling": "待验证判断:只有客户任务的独立质量收益能覆盖训练、数据许可、推理和支持成本,自研模型才构成可评估的商业路线。我们的下一步应先建立任务基线和可重复评估,再核付费试点的预算/采购周期、数据权利、训练摊销和单位推理成本;技术代码、合作标志与融资都不能代付费需求。当前证据不足以比较此路线与订阅应用的财务回报。" } ], "coverage": { diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 6456e69..1bb2d85 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-duix-ez-entity-1", + "version": "2026-10-31-business-models-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 2c523d0..ce5846a 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-duix-ez-entity-1", + "sourceVersion": "2026-10-31-business-models-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From ea312879242d86c7b0be6527d1bfca82107413ec Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:06:41 +0800 Subject: [PATCH 08/11] Keep webpage maintenance dates out of ARR financial cutoffs --- apps/docs/scripts/auth-cli.ts | 2 +- apps/docs/tests/research.test.ts | 9 +- content/research/ai-companies.seed.json | 139 +++++++++++++++++++-- content/research/ai-companies.sources.json | 8 +- content/research/ai-income-analysis.json | 2 +- 5 files changed, 137 insertions(+), 23 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 8b14313..19984d2 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -184,7 +184,7 @@ async function main() { const research = await researchResponse.json(); assert.equal(research.companies.length, 1199); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4667); + assert.equal(research.evidence.length, 4673); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index a08a777..381b8e1 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -124,7 +124,7 @@ test("research revisions share the authentication database and preserve replay l assert.equal(consumeCode(config, "invalid"), "limited"); const initial = readResearchSnapshot(); assert.equal(initial.companies.length, 1199); - assert.equal(initial.evidence.length, 4667); + assert.equal(initial.evidence.length, 4673); assert.equal(initial.observations.length, 453); const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType); assert.equal(businessReviews.length, 4); @@ -169,8 +169,8 @@ 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, 214); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 143); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 216); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 144); assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 46); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); @@ -712,7 +712,8 @@ test("the fifth uncertain cohort separates dated ARR, service run rates, booking assert.equal(figures.length, 18); const dated = figures.find((o) => o.id.endsWith("TRELLIS-ARR-AUG"))!; assert.equal(dated.metric, "arr"); - assert.equal(dated.observedAt, "2026-08-24"); + assert.equal(dated.observedAt, undefined, "a page maintenance date is not a financial cutoff"); + assert.ok(arrFieldGaps(dated, snapshot.asOf).includes("date")); assert.equal(dated.bound, "≥"); assert.equal(figures.find((o) => o.id.endsWith("INSTA-RUNRATE"))!.metric, "annualized-revenue"); assert.equal(figures.find((o) => o.id.endsWith("INSTA-LAUNCH-ARR"))!.metric, "arr"); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index a71eb3a..95181ab 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-business-models-1", + "version": "2026-11-01-arr-time-basis-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -1529,7 +1529,9 @@ "ARRCHECK2-BASE-PRICE", "ARRCHECK2-BASE-TERMS", "SACRA1-BASE-SACRA", - "SACRA1-BASE-SEC" + "SACRA1-BASE-SEC", + "TIME1-BASE-Q4-TIME", + "TIME1-BASE-Q1-TIME" ], "revenueStatus": "self", "pricingEvidence": "ARRCHECK2-BASE-PRICE", @@ -34128,8 +34130,8 @@ "location": null, "business": "用Agent执行客人消息、清洁维护、任务及业主报告等物业运营。", "buyer": "短租及度假屋管理公司", - "delivery": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网2026-08-24的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。", - "notes": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网2026-08-24的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。 法律主体、确认收入、合同与独立技术效果仍待核。", + "delivery": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网标更新2026-08-24、未注明业务截至日的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。", + "notes": "YC未注明业务截至日的500K ARR/35客户/3000房源,与官网标更新2026-08-24、未注明业务截至日的600K+ ARR/45+公司/4000+房源分别保存。报价749.99美元符号/月起,上线费另计,默认草稿/转人工,不当无监督全自动。 法律主体、确认收入、合同与独立技术效果仍待核。", "cohort": "公司官网自述2026-02成立,YC字段2026;独立注册待核", "teamBasis": "YC Team Size;2026-10-31读取,业务人数截至日未给", "price": "官网原文$749.99/月起,按房源另报价,一次性white-glove上线费另计;实际合同未知", @@ -34140,7 +34142,8 @@ "UNCLEAR5-31372-LAUNCH1", "UNCLEAR5-31372-HOME", "UNCLEAR5-31372-PRICE", - "UNCLEAR5-31372-FACTS" + "UNCLEAR5-31372-FACTS", + "TIME1-TRELLIS-TIME" ], "revenueStatus": "self", "extraUrl": "https://trellistech.com", @@ -43998,15 +44001,14 @@ "kind": "公司事实页ARR自述", "value": 600000, "unit": "原文$,币种待核", - "timing": "页面更新2026-08-24", + "timing": "网页标更新2026-08-24;精确财务截至日未注明", "scope": "公司自述物业软件业务,实施费是否剔除未核", "selection": "historical", - "reason": "不把报价/一次性上线混作ARR,独立账单及经常性需核 observedAt沿用页面更新时间,不代表财务截止日已核。", + "reason": "更新日仅属页面元数据,不能代财务截至日;保留原金额/下界与未知币种,实施费剔除、独立账单及经常性定义仍需核。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null, - "metric": "arr", - "observedAt": "2026-08-24" + "metric": "arr" }, { "id": "UNCLEAR5-O-TRELLIS-YC-CUSTOMERS", @@ -44045,10 +44047,10 @@ "kind": "客户/房源采用自述", "value": 45, "unit": "公司", - "timing": "2026-08-24", + "timing": "网页标更新2026-08-24;采用规模截至日未注明", "scope": "物业运营采用,不是独立付费订阅", "selection": "adoption", - "reason": "按来源时点分别保存,不相加或反推ARPA/收入", + "reason": "保留各来源原值,不将页面更新日当业务统计日;客户/房源不相加或反推付费分母/ARPA/收入。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null @@ -44060,10 +44062,10 @@ "kind": "客户/房源采用自述", "value": 4000, "unit": "房源", - "timing": "2026-08-24", + "timing": "网页标更新2026-08-24;采用规模截至日未注明", "scope": "物业运营采用,不是独立付费订阅", "selection": "adoption", - "reason": "按来源时点分别保存,不相加或反推ARPA/收入", + "reason": "保留各来源原值,不将页面更新日当业务统计日;客户/房源不相加或反推付费分母/ARPA/收入。", "evidence": "UNCLEAR5-31372-FACTS", "bound": "≥", "comparisonGroup": null @@ -96191,6 +96193,72 @@ "kind": "公司原始资料/公开代码许可与主体沿革补核", "summary": "隐私正文以EZsite及ezsite.ai为服务定义,提供美国数据处理描述,页首仍显示产品介绍。", "limitation": "隐私生效日不等成立;未提供可独立核验的完整注册信息,不把处理地点当办公室。多个页面的价格片段不替当前完整套餐/合同。" + }, + { + "id": "TIME1-TRELLIS-TIME", + "companyId": "YC31372", + "title": "Trellis网页更新日与财务截至日重新核对", + "url": "https://www.trellistech.com/ai-info", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "页面标Last updated August24,2026,另列ARR原$600K+、45+客户及4000+房源,没有说明这些经营指标的精确截至日。", + "limitation": "更新日仅作为页面元数据,不再填observedAt或当客户/房源统计日。保留金额/下界/原$与不同来源,实施费、付费分母及独立财务仍未核。" + }, + { + "id": "TIME1-BASE-Q4-TIME", + "companyId": "AI056", + "title": "Base44一亿ARR的近期措辞", + "url": "https://www.wix.com/press-room/home/post/wix-reports-fourth-quarter-and-full-year-2025-results", + "publishedAt": "2026-03-04", + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "原公告称Base44 recently reached一亿ARR,没有给精确业务截至日;2025季度标题不代表该里程碑截至2025年末。", + "limitation": "只复核相关段落,不作全篇财务审阅;近期不能填公告日或季度末,不新增重复里程碑,集团财务不移作产品独立数据。" + }, + { + "id": "TIME1-BASE-Q1-TIME", + "companyId": "AI056", + "title": "Base44五月ARR时间精度与集团季度末分开", + "url": "https://www.globenewswire.com/news-release/2026/05/13/3293644/0/en/Wix-Reports-First-Quarter-2026-Results.html", + "publishedAt": "2026-05-13", + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "Base44约1.5亿ARR写as of May;同公告另列Wix集团一季度末总ARR。", + "limitation": "月级业务时点保留,不猜月首/月末/公告日,也不借集团季度末给Base44补日期;金额近似及原观测身份保持,非新增财务点。" + }, + { + "id": "TIME1-SACRA-ACCESS", + "companyId": null, + "title": "Sacra公开目录仍未取得公司行", + "url": "https://sacra.com/explore/companies/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具仍只返回筛选外壳;普通公开HTTP请求同入口返回403,未取得公司结果行。", + "limitation": "保留可读/不可读的工具差异,不认全站无公司或已完整覆盖;不登录、绕过或探测私有接口。四个定向档案不能替目录全量。" + }, + { + "id": "TIME1-PH25-PAGE2-ACCESS", + "companyId": null, + "title": "Product Hunt2025 All第二页可读范围", + "url": "https://www.producthunt.com/leaderboard/yearly/2025/all?page=2", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具不能访问该公开第二页,普通HTTP返回403,无新增可核卡片。", + "limitation": "不是证明第二页为空或年度名单结束;首屏19张文字卡范围及发现快照保持,不尝试绕过访问控制。" + }, + { + "id": "TIME1-PH26-PAGE2-ACCESS", + "companyId": null, + "title": "Product Hunt2026 All第二页可读范围", + "url": "https://www.producthunt.com/leaderboard/yearly/2026/all?page=2", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "经营时点及来源可读范围复核", + "summary": "浏览工具不能访问该公开第二页,普通HTTP返回403,无新增可核卡片。", + "limitation": "不是证明第二页为空或年度名单结束;原Featured/All各首屏19张文字卡范围不扩大,不擅认年度全量。" } ], "reviews": [ @@ -105063,6 +105131,51 @@ "SACRA1-GI-TERMS" ], "handling": "待验证判断:只有客户任务的独立质量收益能覆盖训练、数据许可、推理和支持成本,自研模型才构成可评估的商业路线。我们的下一步应先建立任务基线和可重复评估,再核付费试点的预算/采购周期、数据权利、训练摊销和单位推理成本;技术代码、合作标志与融资都不能代付费需求。当前证据不足以比较此路线与订阅应用的财务回报。" + }, + { + "id": "TIME1-R-TRELLIS", + "type": "网页更新日不代经营截至日", + "company": "Trellis", + "companyIds": [ + "YC31372" + ], + "scope": "companies", + "summary": "原600K+ ARR观测的observedAt误取页面更新日,已移除;采用规模也改为截至日未知,原金额/下界/币种与来源不变。", + "evidenceIds": [ + "UNCLEAR5-31372-FACTS", + "TIME1-TRELLIS-TIME" + ], + "handling": "页面事实的维护日不能证明每项指标结算日。ARR仍明确标签,但不能作为精确同日样本;不能从45+客户与600K+相除推出已核ARPA,需合同、收费/实施费边界及财务日。" + }, + { + "id": "TIME1-R-BASE", + "type": "近期、月级与集团季度末不可混用", + "company": "Base44", + "companyIds": [ + "AI056" + ], + "scope": "companies", + "summary": "一亿ARR为近期,约1.5亿为as of May,均未给具体日;同公告Wix集团季度末指标不能为产品里程碑补日期。", + "evidenceIds": [ + "E092", + "E093", + "TIME1-BASE-Q4-TIME", + "TIME1-BASE-Q1-TIME" + ], + "handling": "保留原时长/月份和金额精度,不填虚构日、不重复收入。产品/集团与自述/审计边界继续区分,未取得同期可比样本,不因不同口径判财务造假。" + }, + { + "id": "TIME1-R-ACCESS", + "type": "公开目录分页与访问限制", + "company": "Sacra / Product Hunt", + "scope": "dataset", + "summary": "2026-11-01重核Sacra目录和PH两年All第二页,浏览工具未取得名单,普通公开HTTP均403。", + "evidenceIds": [ + "TIME1-SACRA-ACCESS", + "TIME1-PH25-PAGE2-ACCESS", + "TIME1-PH26-PAGE2-ACCESS" + ], + "handling": "不能把工具不可读认作名单结束;现有有限批次保留,来源全量覆盖未证。研究统计截至仍2026-10-31,本次仅后续核对历史资料/访问范围,不追加截止日后的经营数字。" } ], "coverage": { diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 1bb2d85..5ba160a 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-business-models-1", + "version": "2026-11-01-arr-time-basis-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -2810,7 +2810,7 @@ "producthunt.com" ], "initialAccess": "官网可读取", - "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。 DUIX补申请稿旧平台/股份转换、仓库重定向与现许可;EZsite补CEO/跨域嵌入、条款缓存和NewOaks旧业务,两候选当前签约/资产链仍缺,保持待核,不增公司或收入。", + "boundary": "已登记2025/2026 Featured及两年All入口各19张文字卡,共76个发现位置,含重复产品/集团旧业务/推广,非76家独立新公司或全年全量。Featured原38卡当前5关联、2范围外对照、26范围外、3年份待核、2推广;2025 All当前1关联(Ada/ChartGen)、14范围外、3年份待核、1推广;2026 All3关联位置、2范围外对照、7范围外、6年份待核、1推广。StoreClaw新增AI105;Ada/ChartGen据条款同名主体与ACRA2025注册新增AI107;Base44/Goldfish等复用公司。旧业务/更名不重置成立,Happycapy销售法人注册不证明全球新创业,Codity年份/创始人差异未消歧。四批原页面发现范围保留;未取得分页和仅图片位置仍缺,未新增收入观测。 DUIX补申请稿旧平台/股份转换、仓库重定向与现许可;EZsite补CEO/跨域嵌入、条款缓存和NewOaks旧业务,两候选当前签约/资产链仍缺,保持待核,不增公司或收入。 2026-11-01重核两年All第二页:浏览不可访问/普通公开HTTP403,无新增名单;不能据此认末页,四批有限范围保留。", "nextCheck": "继续补两年其余分页/日期及仅图片位置;Fundraisly、Happycapy、MGX/Atoms、Duix、EZsite、Acti TypeX、Spira、Codity、PollyReach的未决主体/年份/旧业务链。保留Pazi、Zeta旧业务与年份冲突证据,不转移历史收入。Ada/ChartGen已核同名公司注册与品牌关联,仍缺业务资产沿革、实际办公/团队、当前价格/币种、付费/续费和推理/报告成本;StoreClaw实收与工具成本待核。有限首屏不替全年全量。 DUIX现海外签约登记及集团授权关系、云分钟/本地SDK模型许可;EZsite New Oaks LLC登记及NewOaks业务资产衔接、有效7/30日退款与终身/订阅合同优先补核。", "limitation": "上线时间不等于成立时间", "accessRecheckedAt": "2026-10-30" @@ -2825,7 +2825,7 @@ "sacra.com" ], "initialAccess": "官网可读取", - "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 本轮确认公开目录实际入口/explore/companies仅筛选外壳,另定向登记Gimlet/General Intuition/Peec/Base44四档案,非完整名单。General Intuition据公司自述2025及MIRA代码新增AI106;Gimlet投资方2023暂范围外,保留目录2023/2025及融资字段冲突;Peec/Base44复用既有公司和财务观测,无收入新增。", + "boundary": "已用于定向估算及日期口径交叉核查;无全站公司名录读取台账。 本轮确认公开目录实际入口/explore/companies仅筛选外壳,另定向登记Gimlet/General Intuition/Peec/Base44四档案,非完整名单。General Intuition据公司自述2025及MIRA代码新增AI106;Gimlet投资方2023暂范围外,保留目录2023/2025及融资字段冲突;Peec/Base44复用既有公司和财务观测,无收入新增。 2026-11-01目录再读仍筛选外壳,普通HTTP403,无目录结果行;未扩大定向四例覆盖。", "nextCheck": "保留估算与公司披露差异,核实历史截至日。 继续取得公开目录结果/两年筛选边界与估算方法底表;General Intuition注册/Medal沿革及商业API合同、Gimlet原始登记和财务口径、Peec真实付费分母、Base44产品独立收入及集团定义/毛利实际值仍缺。不能据四例宣布全站覆盖。", "limitation": "部分付费;不能把估算当审计数" }, @@ -2984,7 +2984,7 @@ "status": "per-company", "hosts": [], "initialAccess": "按公司逐一核验", - "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。 本轮复读Gojiberry/Floot/Nexor/Eloquent原始定价/条款/披露,补订阅扩展、AI与托管credit和支付净费边界;Eloquent/Floot旧ARR原$撤销USD推断,当前定价不倒推历史合同或币种。非所有公司官网全量核验。 补Peec/Base44原始定价/条款/API与监管附件ARR定义:有效订阅MRR年化不等独立审计收入,模型/额度成本和预测毛利分列;不新增收入数字。", + "boundary": "公司官网和官方材料逐条绑定证据;不是可预先列尽的全站候选池。 定向新增企智芯与九昇智能的2025成立自述及交付资料,精确注册、实际客户与收入未核;两个官网不代表中文公司全集。 本轮复读Gojiberry/Floot/Nexor/Eloquent原始定价/条款/披露,补订阅扩展、AI与托管credit和支付净费边界;Eloquent/Floot旧ARR原$撤销USD推断,当前定价不倒推历史合同或币种。非所有公司官网全量核验。 补Peec/Base44原始定价/条款/API与监管附件ARR定义:有效订阅MRR年化不等独立审计收入,模型/额度成本和预测毛利分列;不新增收入数字。 Trellis事实页更新日与财务/采用截至日重新分离,移除错误observedAt;Base44近期/月级原时点不填精确日。", "nextCheck": "核定价、主体、交付与收入定义,自述与独立验证分开。", "limitation": "自述不等于独立审计" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index ce5846a..9fa2ecb 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-business-models-1", + "sourceVersion": "2026-11-01-arr-time-basis-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", -- 2.52.0 From ac9ddd9c272cc28c76df8abe50b18cd2abd029f4 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:10:23 +0800 Subject: [PATCH 09/11] Expose source candidates and unresolved classification gaps --- .../docs/src/components/AICompanyResearch.tsx | 6 +- .../src/components/ResearchCandidates.tsx | 75 +++++++++++++++++++ 2 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 apps/docs/src/components/ResearchCandidates.tsx diff --git a/apps/docs/src/components/AICompanyResearch.tsx b/apps/docs/src/components/AICompanyResearch.tsx index 45fd7d3..434e558 100644 --- a/apps/docs/src/components/AICompanyResearch.tsx +++ b/apps/docs/src/components/AICompanyResearch.tsx @@ -3,6 +3,7 @@ import { useRouter } from "next/router"; import IncomeDistribution from "./IncomeDistribution"; import ArrDisclosures from "./ArrDisclosures"; import BusinessModelAssessment from "./BusinessModelAssessment"; +import ResearchCandidates from "./ResearchCandidates"; import { categorySummary, evidenceUrl, technicalReviewLabels, reviewCompanyIds, type ResearchEvidence, type ResearchReview, type ResearchSnapshot, } from "@/lib/ai-research"; @@ -57,7 +58,7 @@ export default function AICompanyResearch() { : router.isReady && typeof linkedCompany === "string" && data?.companies.some((c) => c.id === linkedCompany) ? linkedCompany : null; function setSelected(id: string | null) { setSelection({ route: router.asPath, id }); } - const [tab, setTab] = useState<"companies" | "revenue" | "models" | "sources" | "reviews">("companies"); + const [tab, setTab] = useState<"companies" | "candidates" | "revenue" | "models" | "sources" | "reviews">("companies"); const companySection = useRef(null); const detailSection = useRef(null); useEffect(() => { @@ -129,7 +130,7 @@ export default function AICompanyResearch() {

研究数据

- {([['companies','公司与产品'],['revenue','收入观测'],['models','商业模式初评'],['sources','原始证据'],['reviews','核查记录']] as const).map(([id,label]) => + {([['companies','公司与产品'],['candidates','候选与缺项'],['revenue','收入观测'],['models','商业模式初评'],['sources','原始证据'],['reviews','核查记录']] as const).map(([id,label]) => )}
{tab === "companies" && <> @@ -155,6 +156,7 @@ export default function AICompanyResearch() { {filtered.length > pageSize && } } {tab === "models" && } + {tab === "candidates" && } {tab === "revenue" && <> diff --git a/apps/docs/src/components/ResearchCandidates.tsx b/apps/docs/src/components/ResearchCandidates.tsx new file mode 100644 index 0000000..d9c3e1f --- /dev/null +++ b/apps/docs/src/components/ResearchCandidates.tsx @@ -0,0 +1,75 @@ +import { useMemo, useState } from "react"; +import { evidenceUrl, type ResearchCandidateBatch, type ResearchSnapshot } from "@/lib/ai-research"; + +type CandidateStatus = ResearchCandidateBatch["records"][number]["status"]; +const statusLabels: Record = { + "pending-year": "成立年或主体待核", "pending-ai": "AI 主营待核", linked: "已关联公司", + "existing-outside-cohort": "已关联范围外对照", "outside-cohort": "范围外候选", promotion: "推广活动", +}; +const pageSize = 20; +const sourceNames: Record = { + S01: "Y Combinator", S02: "TechCrunch AI", S04: "Product Hunt", S05: "Sacra", + S10: "机器之心", S11: "36氪", S13: "TrustMRR", S14: "a16z Speedrun", +}; +const sourceLabel = (id: string) => `${id} · ${sourceNames[id] ?? "其他来源"}`; + +function SourceLink({ url, label }: { url: string | null; label: string }) { + const safe = url && evidenceUrl(url); + return safe ? {label} ↗ : {label}(链接未取得); +} + +export default function ResearchCandidates({ data, onSelect, onChooseCategory }: { + data: ResearchSnapshot; onSelect: (id: string) => void; onChooseCategory: (id: string) => void; +}) { + const [source, setSource] = useState(""); + const [batchId, setBatchId] = useState(""); + const [category, setCategory] = useState(""); + const [status, setStatus] = useState("pending"); + const [query, setQuery] = useState(""); + const [page, setPage] = useState(0); + const all = useMemo(() => (data.candidateBatches ?? []).flatMap((batch) => batch.records.map((record) => ({ batch, record }))), [data.candidateBatches]); + const sources = [...new Set(all.map(({ batch }) => batch.sourceId))].sort(); + const batches = (data.candidateBatches ?? []).filter((batch) => !source || batch.sourceId === source); + const matched = all.filter(({ batch, record }) => (!source || batch.sourceId === source) + && (!batchId || batch.id === batchId) && (!category || record.categoryId === category) + && `${record.name} ${record.id} ${record.note}`.toLocaleLowerCase().includes(query.trim().toLocaleLowerCase())); + const pending = (value: CandidateStatus) => value === "pending-year" || value === "pending-ai"; + const rows = matched.filter(({ record }) => !status || (status === "pending" ? pending(record.status) : record.status === status)); + const companies = new Map(data.companies.map((company) => [company.id, company])); + const evidence = new Map(data.evidence.map((item) => [item.id, item])); + const categories = new Map(data.categories.map((item) => [item.id, item.name])); + return
+

候选与缺项

+

展示已登记的有限来源批次及后续核查。默认显示成立年、主体或 AI 主营待核的条目;待核不是确认排除,也不计入公司表。每行是一次发现位置,同一公司或产品可以重复出现。

+

候选初分类与公司表数量分开,来源批次不等全年或全站名单。原始发现范围及后续结论见每行说明;暂无收入资料不作零,推广活动也不算公司。

+
+ + + + + +
+

{rows.length} 个发现位置匹配;不是独立公司数。

+
+ + + {rows.slice(page * pageSize, (page + 1) * pageSize).map(({ batch, record }) => { + const company = record.companyId && companies.get(record.companyId); + return + + + + + + ; + })} +
有限来源候选与处理记录;选择关联公司查看主数据,原始证据直接链接来源
候选初分类 / 状态来源及范围核查结论 / 缺项关联公司 / 证据
{record.id}{statusLabels[record.status]}{batch.id} · 读取 {batch.accessedAt}
发现批次范围

{batch.scope}

{batch.complete ? "该批次标记已完成;不代表来源全站覆盖。" : "该批次仍保留覆盖缺项。"}

{record.note}{company ? : 尚未关联公司主记录} + {record.evidenceIds?.map((id) => { const item = evidence.get(id); return item ?

: null; })} +
+ {!rows.length &&

当前筛选没有已登记的候选记录;不代表该来源或分类没有公司。

} + {rows.length > pageSize && } +
; +} -- 2.52.0 From 5ba790eec2c93a5a88f981853a7f8802d048d049 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:14:51 +0800 Subject: [PATCH 10/11] Reconcile current YC coverage accounting with source boundaries --- content/research/ai-companies.seed.json | 2 +- content/research/ai-companies.sources.json | 34 ++++++++++++++++++++-- content/research/ai-income-analysis.json | 2 +- scripts/audit-ai-research.py | 29 +++++++++++++++++- 4 files changed, 61 insertions(+), 6 deletions(-) diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 95181ab..7dd43d8 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-11-01-arr-time-basis-1", + "version": "2026-11-01-source-accounting-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 5ba160a..9600bf4 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-11-01-arr-time-basis-1", + "version": "2026-11-01-source-accounting-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -14,9 +14,37 @@ "www.ycombinator.com" ], "initialAccess": "官网目录可访问", - "boundary": "已读取八个2025—2026批次镜像候选池1428条,再核YC官方页面;不声称覆盖全部YC历年或未公开公司。 AI主营待核首四项Karsa/QFEX/PgDog/Better Auth在已有初查记录上补11原始证据与2核查,不重复登记,均仍pending-ai;保留Karsa2024/原YC2025冲突、Better Auth旧开源项目/2026Vercel收购及AI模块未稳定边界,无新公司或收入。 AI主营待核后四项NODI/Cascade Space/Foundation Industries/args补10证据与2核查,四项仍待核;新增产品阶段、资本/人工服务、用户收益和品牌说明归属限制,不重复登记或新增收入。 AI待核第三组Shor/GRU Space/DeepGrove/Costream补11证据2核查,DeepGrove经公司模型卡和反链运行时明确研发交付、按C01关联,另三项仍待核。原192AI不明现111关联/81待核,原始发现计数不变;公开产物不等独立验证或收入。 AI待核第四组Albacore/Perseus/Duranium/Munify补11证据与2核查,四项仍待核。新增陆军原始试验参与证据但不推采购/AI模型验证,铭牌产能/内部AI使用、金融档位周期缺项与旧事业交易分别记录,无公司或收入新增。 AI待核第五组Ruvo/Selfin/Sava/General Astronautics补9证据、1数据集及1公司模式核查,Sava经10月28日发布者原稿明确Agent信托任务后关联C07,另三项仍待核。原192AI不明现112关联/80待核,原发现计数不变;人工受托年费/交易净费、旧路线及资产/名义本金分列,无收入新增。 AI待核第六组Miniswap/Voltair/Dome/Crosslayer补12证据、1数据集及1公司模式核查,Voltair经大学AI引导项目/当前同品牌与创始人及客户原文补证按C10关联,模型当前版本仍缺;另三项仍待核,Crosslayer候选纠正C04。原192AI不明现113关联/79待核,原发现计数保持,无收入新增。 AI待核第七组Zephyr/CatchBack/HLabs/Mirabelle补10证据与2数据集核查,四项仍待核。CatchBack历史自称13K原$MRR及另列GMV/按次与仓储费用保留不年化,Mirabelle旧视觉AI缓存与现简介/未来交货分列;无公司/收入观测新增,不回写原发现计数。 AI待核第八组ZeroSettle/Kyten/RoboDock/Valence补10证据、2数据集及1公司模式核查;ZeroSettle当前明确托管Beta AI消息任务按C06关联,新旧计费/消息条款与价格拆分。其余3项仍AI待核,原192现114关联/78待核,原1428/928发现不改,无收入新增。 AI待核第九组Forum/Sequence Markets/Doomersion/Fort补13证据、2数据集及2公司模式核查;Sequence训练模型跨市场匹配/客户MCP分开按C07、Fort训练识别/睡眠按C09关联,均厂商描述,无收入新增。Forum与Doomersion仍待核,原192现116关联/76待核;原发现1428/928不改。 AI待核第十组Meteoric/SpotPay/DAIVIN!/Dispatch补10证据与2数据集核查,四项仍pending-ai,无公司/收入新增。模型最大增益、概念硬件、预发布载荷及客户钱包收益/同名Android边界明确;原发现和原192现116关联/76待核保持。 AI待核第十一组Unifold/Applied Electrodynamics/Totalis/Andustry补13证据、2数据集及1公司模式核查;Andustry wwwAI搜索/人工采购按C07关联,同时保留金融实验室/Trading、创始人状态和Inc./GmbH沿革。其余三项仍待核,原192现117关联/75待核,原发现不改,无收入新增。 AI待核第十二组HEVN/Madrone/Dreach/Oddpool补13证据、2数据集及1公司模式核查,HEVN条款明确第三方LLM财务助手按C07关联,另三项仍待核;Oddbot虽列AI但付费档不可用,不称没有AI。原192现118关联/74待核,发现不改,无收入新增。 AI待核第十三组AICE/River Markets/Aseon Labs/Ornadyne补12证据与2数据集核查,四项仍待核,无公司/收入新增。AICE公司缓存分列2025主体/2026业务,River公司共署LLM摘要与当前收费执行产品仍需对应,回测/示例费不作收入,原192现118关联/74待核及发现保持。 AI待核第十四组Eden/General Aviation/Aernata/Mochatrade补12证据与2数据集核查,四项仍待核,无公司/收入新增。Eden遥操作招聘与按时成本、远程塔台控制员、Pentagon至化学业务反链和Dealroom同名简介、Mochatrade本金/自营/净费边界分别保留,原发现不改。 AI待核第十五组Arlo/Maquoketa/Fire Wallet/Edgerun补11证据与2数据集核查,四项仍待核,无公司/收入新增。Maquoketa按当前游戏工具改候选C08;Fire免订阅与逐笔接口费、发布/合同版本分开;物理产品内部测试不作独立验证。原发现不改。 AI待核第十六组tash/Kara/Molagri/Aerogen补12证据与2数据集核查,四项仍待核,无公司/收入新增。资产指数/融资两币与轮次不混自家收入,文献本征材料与试点曲线不提升独立测试,前NASA研究不当现采购;原发现不改。", + "boundary": "八个2025—2026批次镜像候选池均逐条读取YC官方页面,原始发现审计保持。原AI不明、缺年及日期冲突名单均有后续记录;当前处理计数见结构化coverageSummary,由审计脚本对照原始审计与公司/候选记录复算。目录主营人工复核不等产品、技术或财务审计,深化个案也不等独立验证;不声称覆盖全部YC历年或未公开公司。后续主体/收费/技术证据及排除依据保存在逐公司、候选和核查记录中,不以历史批次的旧计数充当当前结论。", "limitation": "批次不等于成立年;不代表全部公司", - "nextCheck": "已统一企业141、行业252、模型标签26、开发标签51、其余标签34项,共504项新增主营复核。当前928条原YC新增记录保留发现来源,其中基础项871条均已做主营人工复核(871条),57条深化个案。C05规则89保留27/移62,C05标签52保留10/移42;C07规则184保留135/移49,C07标签68保留39/移29;模型标签26保留17/移9,开发标签51保留16/移35,其余标签34保留16/移18。主营复核仍含C00/短简介/混合交付缺项,不等完整产品/技术/财务审计。Tasklet及Native新产品与旧业务链保留,发现审计不改;Freya、Epicenter、Stellon许可及公开材料/厂商基准范围分开。客户收入、估价、资产、节省、管线/意向、预订需求、旧公司收入与示例排除自身ARR;Locke服务run-rate不等ARR,Mixy历史MRR/捐赠、Isengard无期间收入分开。各批证据、观测、核查与主体/收费/人工成本缺项均保留;全部确认来源清单的候选范围、AI不明/成立冲突及公司财务技术缺项继续核,不能声称全来源研究完成。 原AI不明192项已按原顺序补核八批192项:103新增、7复用(含此前已核EveryApp)、82保留AI主营待核,共110关联;没有再把EveryApp额外加1,全池192项均有可回查后续记录。原发现审计/928初始新增不回写;已读全池不等82项均确认AI,更不等268年范围外/缺失、6日期冲突和其他来源全部完成。Rhem交付后租赁/旧买断、Subvocal预约、EveryApp托管计划/Cloudflare费/OpenSEO套餐、ObsessionDB资源估算与BYOC年度运维分开,不新增可比MRR;市政债未来模块、原型/健康/倍速演示及Clean模型实现缺项保留。 原268项年份范围外/缺失已按原快照拆为214项列2022—2024(4/30/180)和54项无年,不称214项本轮登记核验。另6项日期冲突全池已补现官网和2025旧发布,均成立年待核,未新增公司;运营者/条款日期不替注册证据,Layers现AI核心待核,客户销售/利润计算器和前事业收入排除。 原54缺年已复读YC字段均仍空;外部补核首12项:5旧业务范围外、6缺年、1转AI待核,42项外部核查待续。政府登记与公司年份自述分开,美国/集团沿革、Inactive及新旧交付限制保留,无公司/收入新增。 缺年第二批6项:Milliray/DroneTector与Jinba/Carnot旧业务排除,4继续缺年;累计18项外部补核(7范围外/10缺年/1 AI待核),36项待续。Maywood公司自报2025及登记缺项、Q2Q Inactive和客户金额/按成功电话计费边界保留。 缺年第三批6项:Zymbly经英国登记2025入表、5项继续缺年;累计24项外部补核(1关联/7范围外/15缺年/1 AI待核),余30项。前Newton Education/全球主体、Cardinal旧产品、GovGuard拨款/人审、Elyra代收与医疗研发边界保留。 缺年第四批6项:CONUS旧业务排除、4缺年、Apollo AI待核;累计30项(1关联/8范围外/19缺年/2 AI待核),余24项。Gravy当前只读与远程依赖、空条款、CONUS免费核心与收费智能许可和LOI/示例金额边界保留。 缺年第五批6项均成立待核;累计36项(1关联/8范围外/25缺年/2 AI待核),余18项。Touchmark RFQ/代收、Tarifflo现行价表与免费描述差异、Snowstone估计价值、机器人数据硬件和夹具交付分开;同名公司不强配。 缺年第六批6项:Ekho公司公开自报2024暂归范围外,其他5项仍保留成立/主体待核;累计42项(1关联/9范围外/30缺年/2 AI待核),余12项。OneCLI自报2026但条款运营者ChartDB, Inc.,Billow与TC既有候选复用,不把品牌/发布当独立法人;GPU报价/本金/平台费、人工托管与软件许可、机器人样本内评估分开。 缺年末两批12项:Viraj自报2024暂归范围外,Graphide本轮YC官方已补Founded2026及Team2、按现CI/代码评审C04关联,其余10项保留成立/主体待核。原缺年54项现均有外部补核:2关联、10范围外、40成立待核、2 AI待核,0项无外部后续记录;这不是全54项年份均已确认,更不等全来源完成。Melty/Stella Montis与旧编程工具、Blinka非银行/资金示例、Spine佣金及旧条款、Ascenix旧硬件、Ageospatial瑞士旧主体/美国母体和Cesara医院回款边界保留;下一步补这些明确缺项并扩其余来源候选台账。 本轮四项后续需补法律登记/收购交割、当前实际产品可用范围、AI专属商业部署及收费合同;Karsa当前仅导出页不证关闭,AI交易标的/客户不证平台AI主营,金融资产/策略收益、人工支持、免费框架及管理设施收入分开。其余已初查AI主营待核候选按明确缺项追原始证据,不重复计候选或回写发现快照。 后四项补能源方案实际部署/净费与模型、通信软件/容量合同及上线证明、制造自动化实际AI边界、args/gitdot原始品牌/仓库及收费;路线图/公式建模/用户项目不替当前AI主营证据。 第三组DeepGrove商业合同/注册与独立性能仍缺,CUDA/Apple和输出头条件分开;Shor代付与雇佣服务净费、GRU未来资格申请/押金/会员、Costream同名域身份继续追原始合同,不用目录推测替代产品证据。 第四组补AI在当前产品的关键交付、采购/维护与金属销售净费、Munify付费档位周期/币种和伙伴分成;实验参与不替采购/独有AI性能,工厂铭牌/内部工具和原则性许可不替经营实绩。 第五组补Sava法律/特许登记、实际合同与软件-人工受托分摊,Ruvo控股链登记/净交易费、Selfin现AI任务及旧路线转型、General实际AI交付;新公司稿/政府致辞/品牌条款不替独立验证,已登记缺项继续保留。 第六组补Voltair项目至现模型/法人与按杆塔合同分摊,Dome收购取消旧订阅后的运营及整合日期、Miniswap费用规则版本/AI产品、Crosslayer实际AI任务及监测/人工安全评估合同;客户Firescape、交易本金、旧研究标准覆盖不归公司收入。 第七组补CatchBack净费/经常性定义、截止日/币种及实际AI交付;Mirabelle当前视觉任务/模型与家庭测试进展,HLabs实际发货/独立AI产品、Zephyr自身AI角色。MRR自称、未来测试/预购、AI邻接与旧个人/机构收入不可互换。 第八组补ZeroSettle法人与新旧产品收入占比、线路硬件/推理成本、一次性积分兑付和实际续费;Kyten失败自述不等清算/零收入,RoboDock明确学习模型及付费,Valence费率/主体沿革/AI任务仍缺。 第九组补Sequence当前模型/合同/收费与用户交易量净额,Fort硬件软件分摊/预售退款和实际交付续费,Forum模型与费表,Doomersion旧AI角色聊天至当前字幕/匹配模型及卖方主体链。 第十组需Meteoric实地结果/自有AI与实际合同,DAIVIN明确AI及产品状态/独立安全验证,Dispatch2027-10计划至实际飞行/模型与任务合同,SpotPay原始Android反链、费表/AI任务与主体/伙伴净额。 第十一组Andustry当前业务/创始人角色、Inc./GmbH登记合同和佣金/人力成本;TotalisHyperliquid与Solana合同/净费,Unifold模型与第三方费,WaveSight实际AI及预购登记到产品交付待核。 第十二组HEVN合同净费/AI占比、美港主体和推理/合规/渠道成本;Dreach人工成功费/月年条款与自身模型,OddpoolAI档可用性/Inactive及2025条款至2026公司沿革,Madrone现场交付/自有AI与效果仍缺。 第十三组需AICE独立主体沿革和具体模型,River共署研究至现产品AI集成/收费及原论文证据,Aseon试点/当前模型与采购合同,Ornadyne模型和实际交付;不把原型/旧机构/客户节省/实验P&L当收入。 第十四组需Eden当前模型/遥操作比例与工时合同,General Aviation识别任务及实际交付,Aernata与Pentagon法律业务沿革/当前AI,Mochatrade净费与资金/自营分摊及模型;不把目录同名或演示/客户本金并入。 第十五组需当前AI任务、Maquoketa转型/主体及收费,Fire实际费率/实收与产品合同版本,Arlo/Edgerun付费交付与硬件支持成本、独立效度;不据采访/岗位/旧LOI或客户GMV补收入。 第十六组需当前学习任务、tash实际发行/产品收费及主体登记,Kara量产/付费与批次检测,Molagri产品许可/实收及融资轮次原始文件,Aerogen试点收费/验收和硬件运维成本;不靠候补/NDA/科研招聘补收入。" + "nextCheck": "优先核原AI不明名单仍待核的主营证据、原缺年名单的成立/主体沿革及原日期冲突;当前各分区数量由coverageSummary核对,不把待核当永久排除。原范围外214项仅沿用YC旧年份字段,未逐一独立登记核验;原缺年54项的外部补核不表示年份全部确认。目录基础项的收入/合同、当前交付、法律主体、人工与硬件成本、独立技术测试仍缺;融资、客户销售/GMV/节省、意向/目标、旧事业收入及示例不能归本公司ARR。其他确认来源的完整候选边界也未证,不能宣布全来源研究完成。", + "coverageSummary": { + "initialProfiles": 1428, + "originalImported": 928, + "profileOnly": 870, + "deepenedOriginal": 58, + "unclearAI": { + "records": 192, + "statuses": { + "linked": 118, + "pending-ai": 74 + } + }, + "missingYear": { + "records": 54, + "statuses": { + "linked": 2, + "outside-cohort": 10, + "pending-ai": 2, + "pending-year": 40 + } + }, + "dateConflict": { + "records": 6, + "statuses": { + "pending-year": 6 + } + } + } }, { "id": "S02", diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 9fa2ecb..79bc6d8 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-11-01-arr-time-basis-1", + "sourceVersion": "2026-11-01-source-accounting-1", "asOf": "2026-10-31", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", diff --git a/scripts/audit-ai-research.py b/scripts/audit-ai-research.py index 798c864..e9d0c87 100644 --- a/scripts/audit-ai-research.py +++ b/scripts/audit-ai-research.py @@ -16,6 +16,20 @@ SOURCE_SLUG = 'ai-company-research/02-coverage-and-gaps' BASE = '/docs/other-research/ai-company-research/overview' +def yc_coverage_summary(): + companies = {row['id']: row for row in DATA['companies']} + imported = [companies[f"YC{row['ycId']}"] for row in AUDIT['records'] if row['status'] == 'imported'] + profile_only = sum(bool(row.get('profileOnly')) for row in imported) + groups = {} + for label, prefix in [('unclearAI', 'YC-AI-UNCLEAR-'), ('missingYear', 'YC-MISSING-YEAR-'), + ('dateConflict', 'YC-DATE-CONFLICT-')]: + rows = [row for batch in DATA.get('candidateBatches', []) if batch['id'].startswith(prefix) + for row in batch['records']] + groups[label] = {'records': len(rows), 'statuses': dict(sorted(Counter(row['status'] for row in rows).items()))} + return {'initialProfiles': len(AUDIT['records']), 'originalImported': len(imported), + 'profileOnly': profile_only, 'deepenedOriginal': len(imported) - profile_only, **groups} + + def source_register(): sources = SOURCES['sources'] @@ -26,6 +40,8 @@ def source_register(): for source in sources: assert source['status'] in {'candidate-audit', 'targeted', 'pending', 'context', 'access-limited', 'per-company'} assert source['boundary'] and source['nextCheck'] + if source['id'] == 'S01': + assert source.get('coverageSummary') == yc_coverage_summary(), 'YC source summary is stale' if source['url']: assert urlsplit(source['url']).scheme in {'http', 'https'} and urlsplit(source['url']).netloc for host in source['hosts']: @@ -49,7 +65,18 @@ def source_register(): company_ids = {e['companyId'] for e in evidence if e['companyId']} observations = sum(o['evidence'] in evidence_ids for o in DATA['observations']) name = f"[{source['name']}]({source['url']})" if source['url'] else source['name'] - lines.append(f"| {source['id']} {name} | {statuses[source['status']]} | {len(evidence)} / {len(company_ids)} / {observations} | {source['boundary']} | {source['nextCheck']} |") + boundary = source['boundary'] + if source['id'] == 'S01': + summary = source['coverageSummary'] + boundary += (f" 当前原候选池{summary['initialProfiles']}项,原新增{summary['originalImported']}项中" + f"{summary['profileOnly']}项目录基础资料、{summary['deepenedOriginal']}项深化个案。") + for key, label in [('unclearAI', '原AI不明'), ('missingYear', '原缺年'), ('dateConflict', '原日期冲突')]: + group = summary[key] + labels = {'linked': '关联公司', 'pending-ai': 'AI主营待核', + 'pending-year': '成立/主体待核', 'outside-cohort': '范围外'} + counts = '、'.join(f'{labels.get(status, status)} {count}' for status, count in group['statuses'].items()) + boundary += f" {label}{group['records']}项当前:{counts}。" + lines.append(f"| {source['id']} {name} | {statuses[source['status']]} | {len(evidence)} / {len(company_ids)} / {observations} | {boundary} | {source['nextCheck']} |") lines += ['', 'Dealroom、Product Hunt、机器之心与36氪入口于2026-10-30重新访问。官网首页可读不证明已取得完整筛选结果;安全检测页面不作为文章内容。候选池之外的来源边界尚需建立可回查条目,完成前不宣布来源清单已全部覆盖。', ''] return lines -- 2.52.0 From eb7e758570b73cbc00a4e6181b0bf0f572f5c4f9 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 00:25:46 +0800 Subject: [PATCH 11/11] Register public SR007 roster and verify three new AI companies --- apps/docs/scripts/auth-cli.ts | 4 +- apps/docs/tests/research.test.ts | 34 +- content/research/ai-companies.seed.json | 1449 +++++++++++++++++++- content/research/ai-companies.sources.json | 21 +- content/research/ai-income-analysis.json | 4 +- scripts/audit-ai-research.py | 7 + 6 files changed, 1499 insertions(+), 20 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 19984d2..d1ed1f3 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -182,9 +182,9 @@ 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, 1199); + assert.equal(research.companies.length, 1202); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 4673); + assert.equal(research.evidence.length, 4689); assert.equal(research.observations.length, 453); 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 }); diff --git a/apps/docs/tests/research.test.ts b/apps/docs/tests/research.test.ts index 381b8e1..97031a3 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -123,8 +123,8 @@ 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, 1199); - assert.equal(initial.evidence.length, 4673); + assert.equal(initial.companies.length, 1202); + assert.equal(initial.evidence.length, 4689); assert.equal(initial.observations.length, 453); const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType); assert.equal(businessReviews.length, 4); @@ -169,9 +169,9 @@ 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, 216); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 144); - assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 46); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 219); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 145); + assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 47); const review = snapshot.reviews.find((r) => r.id === "R4")!; assert.deepEqual(reviewCompanyIds(snapshot, review), ["AI007", "AI013", "AI021", "AI034"]); assert.deepEqual(reviewCompanyIds(snapshot, snapshot.reviews.find((r) => r.id === "CN-R-PSI")!), []); @@ -190,11 +190,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), 1199); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1202); assert.equal(summary.reduce((n, c) => n + c.self, 0), 58); assert.equal(summary.reduce((n, c) => n + c.estimate, 0), 2); assert.equal(summary.reduce((n, c) => n + c.platform, 0), 19); - assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1120); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1123); 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 === "公司整体")); @@ -229,7 +229,7 @@ test("service run rates, legacy freight revenue and paid adoption do not become test("technical reviews keep accessible materials separate from tested capabilities", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; - assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 184); + assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 187); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 26); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1); assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown"); @@ -444,7 +444,7 @@ test("platform samples exclude stale data and keep ARR, estimates and collection const invalid = structuredClone(snapshot); invalid.observations = invalid.observations.filter((o) => o.company === "MR001" && o.metric === "mrr"); const first = invalid.observations[0]; - invalid.observations.push({ ...first, id: "future", observedAt: "2026-11-01", value: 999999 }); + invalid.observations.push({ ...first, id: "future", observedAt: "2026-11-02", value: 999999 }); invalid.observations.push({ ...first, id: "bad-date", observedAt: "2026-02-30", value: 999999 }); invalid.observations.push({ ...first, id: "currency", unit: "EUR", value: 999999 }); invalid.observations.push({ ...first, id: "older", observedAt: "2026-10-28", value: 1 }); @@ -490,6 +490,20 @@ test("product launch candidates preserve unresolved years and many launches per assert.throws(() => validateResearch(snapshot), /research candidate/); }); +test("the public SR007 roster preserves unique entries and Alven's older operator conflict", () => { + const snapshot = seed as ResearchSnapshot; + const batch = snapshot.candidateBatches!.find((item) => item.id === "SR007-public-roster-2026-1")!; + assert.equal(batch.complete, false, "one public default cohort is not all source coverage"); + assert.equal(batch.records.length, 79); + assert.equal(new Set(batch.records.map((row) => row.url)).size, 79); + const alven = batch.records.find((row) => row.name === "Alven")!; + assert.equal(alven.status, "pending-year"); + assert.equal(alven.companyId, undefined); + assert.ok(alven.evidenceIds?.includes("SR007R-ALVEN-REG")); + assert.ok(!snapshot.observations.some((item) => item.evidence.startsWith("SR007R-")), + "roster claims, deployment plans and per-unit prices are not new financial observations"); +}); + test("annual launch archives exclude older companies only with evidence and reuse existing records", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; const batch = snapshot.candidateBatches!.find((b) => b.id === "PH-2025-visible-1")!; @@ -517,7 +531,7 @@ test("unreconciled directory financials remain source reviews instead of income assert.ok(review.evidenceIds.includes("PH-TANA-DR")); assert.equal(reviewCompanyIds(snapshot, review).length, 0); assert.ok(!snapshot.observations.some((o) => o.evidence === "PH-TANA-DR")); - assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 130); + assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 189); }); test("product pivots and founder histories do not become new company years or current revenue", () => { diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 7dd43d8..5fd7c7a 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,6 +1,6 @@ { - "version": "2026-11-01-source-accounting-1", - "asOf": "2026-10-31", + "version": "2026-11-01-sr007-public-roster-1", + "asOf": "2026-11-01", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ "非随机样本,YC和英文资料偏多;不代表全球全量公司。", @@ -37738,6 +37738,116 @@ "ADA1-API" ] } + }, + { + "id": "AI108", + "name": "Acaysia", + "url": "https://acaysia.com/", + "channel": "S14", + "cat": "C07", + "year": 2026, + "team": 3, + "location": null, + "business": "用学习模型优化工厂工业过程,结合控制软件、仿真及边缘组件。", + "buyer": "工业企业与工厂运营团队", + "delivery": "官网招募试点;软件、边缘设备与工程交付的实际收费和持续部署未核", + "notes": "目录旧金山与官网Oakland分列;增益为估计,客户产出/成本节省非公司收入;安全口号非独立认证。", + "cohort": "投资方公司档案自报2026成立,非SR007批次推断;独立登记待核", + "teamBasis": "投资方档案员工自报,2026-11-01读取,未注明业务人数截至日", + "price": "询价/试点入口,无公开完整收费与现场服务合同", + "stage": "官网招募试点;软件、边缘设备与工程交付的实际收费和持续部署未核", + "sourceType": "投资方档案及公司官网/条款原始材料", + "evidenceIds": [ + "SR007R-ACAYSIA-SR", + "SR007R-ACAYSIA-HOME", + "SR007R-ACAYSIA-TERMS" + ], + "revenueStatus": "unknown", + "businessModel": "工业软件/设备/工程服务可能混合,许可、项目与持续服务收入待拆", + "entityBasis": "网站条款Acaysia, Inc.及Delaware适用法非独立登记或产品采购合同", + "classificationBasis": "按当前主要交付任务分类;与客户行业、营销标签和融资分开", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-11-01", + "summary": "已读公开产品/技术自述,未运行系统或完成独立性能、可靠性与安全评测。", + "evidenceIds": [ + "SR007R-ACAYSIA-SR", + "SR007R-ACAYSIA-HOME" + ] + } + }, + { + "id": "AI109", + "name": "AgentCat(原MCPcat)", + "url": "https://agentcat.com/", + "channel": "S14", + "cat": "C03", + "year": 2025, + "team": 5, + "location": "美国纽约(投资方资料)", + "business": "分析和回放AI Agent会话,为MCP及应用连接器提供观测、意图分析和问题发现。", + "buyer": "AI平台、工具与MCP产品团队", + "delivery": "网页服务/公开套餐,企业含集成支持;SDK和实际效果未独立验证", + "notes": "2026更名为AgentCat但同团队/业务,不新增第二家公司;前公司退出与客户Logo非本公司收入,SOC2及SDK许可未专项核。", + "cohort": "投资方公司档案自报2025成立,非SR007批次推断;独立登记待核", + "teamBasis": "投资方档案员工自报,2026-11-01读取,未注明业务人数截至日", + "price": "Free500会话;Growth原$160月付含2000会话,超额原$40/1000;企业年约,币种和实际订单待核", + "stage": "网页服务/公开套餐,企业含集成支持;SDK和实际效果未独立验证", + "sourceType": "投资方档案及公司官网/条款原始材料", + "evidenceIds": [ + "SR007R-AGENTCAT-SR", + "SR007R-AGENTCAT-HOME", + "SR007R-AGENTCAT-RENAME" + ], + "revenueStatus": "unknown", + "businessModel": "基础订阅+会话用量及分析附加项;模型分析、事件存储、脱敏与支持成本待核", + "entityBasis": "当前同域更名公告确认业务连续;精确法人登记及旧MCPcat签约方仍需核", + "classificationBasis": "按当前主要交付任务分类;与客户行业、营销标签和融资分开", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-11-01", + "summary": "已读公开产品/技术自述,未运行系统或完成独立性能、可靠性与安全评测。", + "evidenceIds": [ + "SR007R-AGENTCAT-SR", + "SR007R-AGENTCAT-HOME" + ] + } + }, + { + "id": "AI110", + "name": "Banbury Road", + "url": "https://banburyroad.ai/", + "channel": "S14", + "cat": "C01", + "year": 2026, + "team": 3, + "location": "美国旧金山(投资方资料)", + "business": "研究训练多模型协作系统,以模型群体执行任务。", + "buyer": "模型使用及研究团队(潜在客户,付费需求未核)", + "delivery": "官网首个模型系统尚待发布,当前候补;没有实际调用或独立测试", + "notes": "旧学术工作及论文不归新公司技术成绩或营收;性能/成本优势为自述,界面对话为示例。", + "cohort": "投资方公司档案自报2026成立,非SR007批次推断;独立登记待核", + "teamBasis": "投资方档案员工自报,2026-11-01读取,未注明业务人数截至日", + "price": "未取得公开价格或付费合同", + "stage": "官网首个模型系统尚待发布,当前候补;没有实际调用或独立测试", + "sourceType": "投资方档案及公司官网/条款原始材料", + "evidenceIds": [ + "SR007R-BANBURY-SR", + "SR007R-BANBURY-HOME" + ], + "revenueStatus": "unknown", + "businessModel": "模型/研究交付候补阶段,许可/API或项目合同尚未确认", + "entityBasis": "官网Banbury Rd, Inc.自述非独立登记;创始人旧学术项目与公司分开", + "classificationBasis": "按当前主要交付任务分类;与客户行业、营销标签和融资分开", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-11-01", + "summary": "已读公开产品/技术自述,未运行系统或完成独立性能、可靠性与安全评测。", + "evidenceIds": [ + "SR007R-BANBURY-SR", + "SR007R-BANBURY-HOME" + ] + } } ], "observations": [ @@ -96259,6 +96369,182 @@ "kind": "经营时点及来源可读范围复核", "summary": "浏览工具不能访问该公开第二页,普通HTTP返回403,无新增可核卡片。", "limitation": "不是证明第二页为空或年度名单结束;原Featured/All各首屏19张文字卡范围不扩大,不擅认年度全量。" + }, + { + "id": "SR007R-ROSTER", + "companyId": null, + "title": "SR007公开HTML目录载荷边界", + "url": "https://speedrun.a16z.com/companies", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "匿名公开HTML内嵌公司数据共79个唯一ID/slug,默认SR007,count79且next/previous空;普通HTML可识别75个UUID档案链接。", + "limitation": "文本提取外壳不代表无名单;本批含公开载荷全部79条,但并非2025—2026所有批次。未执行站点脚本或调用私有接口,不存个人资料/追踪字段,目录财务和性能宣传不自动入观测。" + }, + { + "id": "SR007R-ACAYSIA-SR", + "companyId": "AI108", + "title": "Acaysia投资方档案自报2026", + "url": "https://speedrun.a16z.com/companies/acaysia", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "档案列2026成立、3人、旧金山及同域名,描述工厂AI控制软件。", + "limitation": "投资方/公司资料非登记或独立效果验证;团队为页面自报、无人数业务截至日,客户增益不作营收。" + }, + { + "id": "SR007R-ACAYSIA-HOME", + "companyId": "AI108", + "title": "Acaysia当前模型与试点阶段", + "url": "https://acaysia.com/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "官网描述按工厂数据学习的模型控制软件,另有边缘硬件/仿真组件,并招募2026试点伙伴;页脚Oakland。", + "limitation": "估计增益、低延迟和安全兼容宣传未独立验证或认证;试点招募非已付费部署,软件/设备/工程服务待拆,所在地与目录旧金山不同。" + }, + { + "id": "SR007R-ACAYSIA-TERMS", + "companyId": "AI108", + "title": "Acaysia网站主体非工业交付合同", + "url": "https://acaysia.com/terms", + "publishedAt": "2026-08-21", + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "网站条款称Acaysia, Inc.及Delaware适用法,仅管理网站访问与商业咨询。", + "limitation": "条款日期非成立/注册证明,网站条款不能代现场交付、安全认证或产品SLA;实际合同与费率缺。" + }, + { + "id": "SR007R-AGENTCAT-SR", + "companyId": "AI109", + "title": "AgentCat投资方档案自报2025", + "url": "https://speedrun.a16z.com/companies/agentcat", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "档案列2025成立、5人、纽约,同官网;AI Agent会话观测与分析工具。", + "limitation": "自报成立非独立登记,创始人前公司退出不归新公司收入。" + }, + { + "id": "SR007R-AGENTCAT-HOME", + "companyId": "AI109", + "title": "AgentCat套餐与AI观测任务", + "url": "https://agentcat.com/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "官网提供会话回放/意图分析,Free500会话、Growth原$160月付含2000会话,超额原$40/1000,企业年约询价;LLM Goals为附加项。", + "limitation": "原$不补币种,报价非实收;免费转化、实际付费/模型分析成本未知。开源SDK和SOC2为官网说法,本次未核仓库或审计报告。" + }, + { + "id": "SR007R-AGENTCAT-RENAME", + "companyId": "AI109", + "title": "MCPcat至AgentCat同业务更名", + "url": "https://agentcat.com/blog/mcpcat-is-now-agentcat/", + "publishedAt": "2026-07-04", + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "公司说明同团队/产品更名,域名和SDK名称变化,项目数据与历史保持。", + "limitation": "更名不重置2025成立或新增第二家公司;旧包兼容/端点宣传未实际运行验证。" + }, + { + "id": "SR007R-BANBURY-SR", + "companyId": "AI110", + "title": "Banbury Road投资方档案自报2026", + "url": "https://speedrun.a16z.com/companies/banbury-road", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "档案列2026成立、3人、旧金山,训练多模型协作系统,并描述创始人以前学术项目。", + "limitation": "学术履历/2025论文不能当2026新公司独立技术评测或收入,不照单接受成本/能力宣传。" + }, + { + "id": "SR007R-BANBURY-HOME", + "companyId": "AI110", + "title": "Banbury Road模型研究及候补", + "url": "https://banburyroad.ai/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "官网自述训练多模型协作,首个model civilization尚待发布、开放候补;页脚Banbury Rd, Inc.。", + "limitation": "未取得公开价表、付费合同、可复现模型/独立结果;界面对话仅示例,Inc.自述非注册核验,不提交表单。" + }, + { + "id": "SR007R-ALVEN-SR", + "companyId": null, + "title": "Alven自报2025及ARR/部署边界", + "url": "https://speedrun.a16z.com/companies/alven", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "投资方档案2025成立、4人、旧金山,原$1.2M ARR六个月与正在部署原$10M ARR并列。", + "limitation": "后者不是已实现收入,前者也缺币种/日历截至日及独立账单;主体成立另与原始登记冲突,暂不新增公司或财务观测。" + }, + { + "id": "SR007R-ALVEN-HOME", + "companyId": null, + "title": "Alven房源采用与单元收费", + "url": "https://alven.ai/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "官网描述物业AI任务、150K管理单元及每单元每月原$10;客户效果与认证标志自述。", + "limitation": "单元不证全部活跃付费,不乘报价推ARR;客户节省/回款不是平台收入,实际合同/范围及认证报告未核。" + }, + { + "id": "SR007R-ALVEN-TERMS", + "companyId": null, + "title": "Alven条款运营者ROOMSS LTD", + "url": "https://alven.ai/terms-and-conditions", + "publishedAt": "2025-10-02", + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "官网条款列ROOMSS LTD及伦敦注册地址,明确LLM邮件分析需用户授权。", + "limitation": "日期为条款维护非成立;当前品牌与英国旧主体、美国业务沿革需分,不据新品牌重置注册年。" + }, + { + "id": "SR007R-ALVEN-REG", + "companyId": null, + "title": "ROOMSS LTD官方2024登记", + "url": "https://find-and-update.company-information.service.gov.uk/company/15542398", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "Companies House公司15542398登记2024-03-05成立、Active,地址与Alven条款对应。", + "limitation": "官方公开登记非独立核所有申报准确性;地址不代表当前办公地,不单用注册日推AI业务开始或未来美国实体。" + }, + { + "id": "SR007R-ALVEN-OFFICERS", + "companyId": null, + "title": "ROOMSS董事与Alven创始人对应", + "url": "https://find-and-update.company-information.service.gov.uk/company/15542398/officers", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "登记董事Andrey Dobrov、Julio Cezar Scerbina与Alven投资方创始姓名对应,均自2024任职。", + "limitation": "仅核姓名/职务与日期,不采个人出生/住址等信息;董事人数不等员工或集团总人数,实际品牌/资产和合同沿革仍缺。" + }, + { + "id": "SR007R-QUERY05", + "companyId": null, + "title": "SR005公开查询仍返回默认批次", + "url": "https://speedrun.a16z.com/companies?cohort=SR005", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "普通公开HTML的defaultCohort及79条结果仍为SR007,未取得SR005列表。", + "limitation": "不得按请求参数认已读取所选批次;未执行脚本或访问非公开接口,其他批次边界继续缺。" + }, + { + "id": "SR007R-QUERY06", + "companyId": null, + "title": "SR006公开查询仍返回默认批次", + "url": "https://speedrun.a16z.com/companies?cohort=SR006", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "投资方公开目录与公司原始资料/登记补核", + "summary": "普通公开HTML的defaultCohort及79条结果仍为SR007,未取得SR006列表。", + "limitation": "不得把重复默认名单当另一批次;其他2025/2026批次目录尚未穷尽。" } ], "reviews": [ @@ -105176,6 +105462,81 @@ "TIME1-PH26-PAGE2-ACCESS" ], "handling": "不能把工具不可读认作名单结束;现有有限批次保留,来源全量覆盖未证。研究统计截至仍2026-10-31,本次仅后续核对历史资料/访问范围,不追加截止日后的经营数字。" + }, + { + "id": "SR007R-R-ROSTER", + "type": "公开载荷与默认批次边界", + "company": "a16z Speedrun SR007", + "scope": "dataset", + "summary": "公开HTML得79条载荷并逐条登记;文本工具外壳不代表没有目录。参数请求SR005/SR006仍返回SR007,不能算额外批次。", + "evidenceIds": [ + "SR007R-ROSTER", + "SR007R-QUERY05", + "SR007R-QUERY06" + ], + "handling": "仅按唯一档案链接复用17家公司,另3新个案;59仍主体/年份待核,不从标签/批次/近名推成立或财务。四个独立档案与其余仅目录的读取深度分开,完整载荷不等全来源核查完成。" + }, + { + "id": "SR007R-R-ACAYSIA", + "type": "工业软件试点与客户效果边界", + "company": "Acaysia", + "companyIds": [ + "AI108" + ], + "scope": "companies", + "summary": "2026档案/公司技术自述支持C07工业AI软件,试点招募不等已商用交付,网站条款不代产品合同。", + "evidenceIds": [ + "SR007R-ACAYSIA-SR", + "SR007R-ACAYSIA-HOME", + "SR007R-ACAYSIA-TERMS" + ], + "handling": "需许可、边缘设备、实施/持续工程收费及模型/现场支持成本;估计增益不作营收,不根据安全口号推认证或独立测试,精确登记与运营地仍缺。" + }, + { + "id": "SR007R-R-AGENTCAT", + "type": "更名连续性及观测用量收费", + "company": "AgentCat / MCPcat", + "companyIds": [ + "AI109" + ], + "scope": "companies", + "summary": "2025成立自报与2026同团队更名分开;会话套餐与分析附加项是收费设计,不等已实现经常性收入。", + "evidenceIds": [ + "SR007R-AGENTCAT-SR", + "SR007R-AGENTCAT-HOME", + "SR007R-AGENTCAT-RENAME" + ], + "handling": "不复制旧品牌公司,核实际付费/事件量、模型分析与存储/支持成本、法人合同及退款/续费;未读取SDK代码和SOC2报告,不提升独立测试或商用许可结论。" + }, + { + "id": "SR007R-R-BANBURY", + "type": "研究路线、旧论文与候补交付", + "company": "Banbury Road", + "companyIds": [ + "AI110" + ], + "scope": "companies", + "summary": "投资方2026及公司多模型训练研究支持C01,首发仍候补,旧学术工作不当新公司模型独立成绩。", + "evidenceIds": [ + "SR007R-BANBURY-SR", + "SR007R-BANBURY-HOME" + ], + "handling": "需可访问模型/数据授权、可复现实验和当前客户任务及合同;不推前沿效果、训练成本/利润或收入,保持description级。" + }, + { + "id": "SR007R-R-ALVEN", + "type": "品牌成立与旧法人成立冲突、部署金额非收入", + "company": "Alven / ROOMSS LTD", + "scope": "excluded-candidate", + "summary": "投资方2025成立与条款同名/同地址/同创始董事的英国2024登记冲突;新业务或海外主体沿革尚未消歧。", + "evidenceIds": [ + "SR007R-ALVEN-SR", + "SR007R-ALVEN-HOME", + "SR007R-ALVEN-TERMS", + "SR007R-ALVEN-REG", + "SR007R-ALVEN-OFFICERS" + ], + "handling": "候选保持pending-year,不建2025公司或收入观测。1.2M ARR自述无日历日/币种、10M正在部署不等已实现;客户单元/节省、认证标志和董事不代付费分母、独立验证或员工。" } ], "coverage": { @@ -118290,6 +118651,1090 @@ "note": "关联已有AI056;估算复述里程碑不重复收入,集团ARR/分部收入及毛利预测不当产品独立财务。" } ] + }, + { + "id": "SR007-public-roster-2026-1", + "sourceId": "S14", + "url": "https://speedrun.a16z.com/companies", + "accessedAt": "2026-11-01", + "scope": "匿名公开HTML默认SR007完整载荷79个唯一ID/slug;count79、next/previous空,75个UUID普通链接。20关联(17复用、3本轮新增)、59成立/主体待核。仅此默认载荷,非所有批次/两年全量;独立档案仅四个补读,其余仅目录。", + "complete": false, + "records": [ + { + "id": "SR007R-C01", + "name": "Abliteration.ai", + "url": "https://speedrun.a16z.com/companies/abliteration", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR-E-abliteration" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI067" + }, + { + "id": "SR007R-C02", + "name": "Acaysia", + "url": "https://speedrun.a16z.com/companies/acaysia", + "categoryId": "C07", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR007R-ACAYSIA-SR" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI108" + }, + { + "id": "SR007R-C03", + "name": "AgentCat", + "url": "https://speedrun.a16z.com/companies/agentcat", + "categoryId": "C03", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR007R-AGENTCAT-SR" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI109" + }, + { + "id": "SR007R-C04", + "name": "Alia", + "url": "https://speedrun.a16z.com/companies/alia", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "E097" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI057" + }, + { + "id": "SR007R-C05", + "name": "Alven", + "url": "https://speedrun.a16z.com/companies/alven", + "categoryId": "C07", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER", + "SR007R-ALVEN-SR", + "SR007R-ALVEN-HOME", + "SR007R-ALVEN-TERMS", + "SR007R-ALVEN-REG", + "SR007R-ALVEN-OFFICERS" + ], + "note": "目录2025但官网条款ROOMSS LTD对应英国15542398于2024-03-05成立,董事与创始人相符;新旧品牌/美国主体资产关系未消歧,暂成立/主体待核,不新增公司。原$1.2M ARR六个月与正在部署$10M分开,不转为已核同期财务;150K单元不乘原$10推收入。" + }, + { + "id": "SR007R-C06", + "name": "Athena", + "url": "https://speedrun.a16z.com/companies/athena", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-ATHENA" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI093" + }, + { + "id": "SR007R-C07", + "name": "Banbury Road", + "url": "https://speedrun.a16z.com/companies/banbury-road", + "categoryId": "C01", + "kind": "company", + "profileStatus": "readable", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR007R-BANBURY-SR" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI110" + }, + { + "id": "SR007R-C08", + "name": "Baro", + "url": "https://speedrun.a16z.com/companies/baro", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C09", + "name": "Blueprint", + "url": "https://speedrun.a16z.com/companies/blueprint", + "categoryId": "C04", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C10", + "name": "Bounty", + "url": "https://speedrun.a16z.com/companies/bounty", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "TC26ENT1-BOUNTY-ACCELERATOR" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "TC-BOUNTY" + }, + { + "id": "SR007R-C11", + "name": "Bric", + "url": "https://speedrun.a16z.com/companies/bric", + "categoryId": "C00", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C12", + "name": "Cartsy", + "url": "https://speedrun.a16z.com/companies/cartsy", + "categoryId": "C09", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C13", + "name": "ChatOverflow", + "url": "https://speedrun.a16z.com/companies/chatoverflow", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C14", + "name": "ChronoSpace", + "url": "https://speedrun.a16z.com/companies/chronospace", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C15", + "name": "Cluster", + "url": "https://speedrun.a16z.com/companies/cluster", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR-E-cluster" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI064" + }, + { + "id": "SR007R-C16", + "name": "Codos", + "url": "https://speedrun.a16z.com/companies/codos", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR-E-codos" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI065" + }, + { + "id": "SR007R-C17", + "name": "Coherence Health", + "url": "https://speedrun.a16z.com/companies/coherence-health", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C18", + "name": "Colmez", + "url": "https://speedrun.a16z.com/companies/colmez", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C19", + "name": "Contxt", + "url": "https://speedrun.a16z.com/companies/contxt", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C20", + "name": "Coop", + "url": "https://speedrun.a16z.com/companies/coop", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C21", + "name": "Corlen", + "url": "https://speedrun.a16z.com/companies/corlen", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C22", + "name": "Cube Computer", + "url": "https://speedrun.a16z.com/companies/cube-computer", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C23", + "name": "Cybernetic Physics", + "url": "https://speedrun.a16z.com/companies/cybernetic-physics", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-CYBERNETIC-PHYSICS" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI089" + }, + { + "id": "SR007R-C24", + "name": "Delightful AI", + "url": "https://speedrun.a16z.com/companies/delightful-ai", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C25", + "name": "DRS", + "url": "https://speedrun.a16z.com/companies/drs", + "categoryId": "C08", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR25-DRS" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI100" + }, + { + "id": "SR007R-C26", + "name": "Elu", + "url": "https://speedrun.a16z.com/companies/elu", + "categoryId": "C04", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-ELU" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI092" + }, + { + "id": "SR007R-C27", + "name": "Embrasure", + "url": "https://speedrun.a16z.com/companies/embrasure", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C28", + "name": "Fictional", + "url": "https://speedrun.a16z.com/companies/fictional", + "categoryId": "C09", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C29", + "name": "Flip", + "url": "https://speedrun.a16z.com/companies/flip", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C30", + "name": "Galileo Space", + "url": "https://speedrun.a16z.com/companies/galileo-space", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C31", + "name": "Harbor AI", + "url": "https://speedrun.a16z.com/companies/harbor-ai", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C32", + "name": "Hoid", + "url": "https://speedrun.a16z.com/companies/hoid", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C33", + "name": "Infragrid", + "url": "https://speedrun.a16z.com/companies/infragrid", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR-E-infragrid" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI069" + }, + { + "id": "SR007R-C34", + "name": "Kairo", + "url": "https://speedrun.a16z.com/companies/kairo", + "categoryId": "C04", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C35", + "name": "Keythorn", + "url": "https://speedrun.a16z.com/companies/keythorn", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C36", + "name": "KIRA", + "url": "https://speedrun.a16z.com/companies/kira", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C37", + "name": "Lazyweb", + "url": "https://speedrun.a16z.com/companies/lazyweb", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-LAZYWEB" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI090" + }, + { + "id": "SR007R-C38", + "name": "Leonidas", + "url": "https://speedrun.a16z.com/companies/leonidas", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C39", + "name": "Maestro", + "url": "https://speedrun.a16z.com/companies/maestro", + "categoryId": "C09", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C40", + "name": "Mecone", + "url": "https://speedrun.a16z.com/companies/mecone", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C41", + "name": "Mirai", + "url": "https://speedrun.a16z.com/companies/mirai", + "categoryId": "C08", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C42", + "name": "Motherboard Labs", + "url": "https://speedrun.a16z.com/companies/motherboard-labs", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C43", + "name": "Munari", + "url": "https://speedrun.a16z.com/companies/munari", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C44", + "name": "Nexor AI", + "url": "https://speedrun.a16z.com/companies/nexor-ai", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "E043", + "E103", + "NEXOR-CURRENCY-RECHECK" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI043" + }, + { + "id": "SR007R-C45", + "name": "Nimble", + "url": "https://speedrun.a16z.com/companies/nimble", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C46", + "name": "OneGC", + "url": "https://speedrun.a16z.com/companies/onegc", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR25-ONEGC" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI097" + }, + { + "id": "SR007R-C47", + "name": "Ontem", + "url": "https://speedrun.a16z.com/companies/ontem", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-ONTEM" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI088" + }, + { + "id": "SR007R-C48", + "name": "OpenWhispr", + "url": "https://speedrun.a16z.com/companies/openwhispr", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C49", + "name": "Orbits", + "url": "https://speedrun.a16z.com/companies/orbits", + "categoryId": "C09", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C50", + "name": "Oruk", + "url": "https://speedrun.a16z.com/companies/oruk", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C51", + "name": "Othello", + "url": "https://speedrun.a16z.com/companies/othello", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C52", + "name": "Parca", + "url": "https://speedrun.a16z.com/companies/parca", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C53", + "name": "PhotonSpear", + "url": "https://speedrun.a16z.com/companies/photonspear", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C54", + "name": "Phyvant", + "url": "https://speedrun.a16z.com/companies/phyvant", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C55", + "name": "PreMan", + "url": "https://speedrun.a16z.com/companies/preman", + "categoryId": "C04", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-PREMAN" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI095" + }, + { + "id": "SR007R-C56", + "name": "Primitive Labs", + "url": "https://speedrun.a16z.com/companies/primitive-labs", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C57", + "name": "Proper Motion", + "url": "https://speedrun.a16z.com/companies/proper-motion", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR-E-proper-motion" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI063" + }, + { + "id": "SR007R-C58", + "name": "Reelful", + "url": "https://speedrun.a16z.com/companies/reelful", + "categoryId": "C08", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C59", + "name": "Rhema Health", + "url": "https://speedrun.a16z.com/companies/rhema-health", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C60", + "name": "Rollup", + "url": "https://speedrun.a16z.com/companies/rollup", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C61", + "name": "Rumbo", + "url": "https://speedrun.a16z.com/companies/rumbo", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C62", + "name": "Saru", + "url": "https://speedrun.a16z.com/companies/saru", + "categoryId": "C06", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C63", + "name": "scaledrive.ai", + "url": "https://speedrun.a16z.com/companies/scaledriveai", + "categoryId": "C10", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C64", + "name": "SenseLab", + "url": "https://speedrun.a16z.com/companies/senselab", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C65", + "name": "Sonder", + "url": "https://speedrun.a16z.com/companies/sonder", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C66", + "name": "Sotant", + "url": "https://speedrun.a16z.com/companies/sotant", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C67", + "name": "Space", + "url": "https://speedrun.a16z.com/companies/space", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C68", + "name": "Spun Labs", + "url": "https://speedrun.a16z.com/companies/spun-labs", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C69", + "name": "Sterling", + "url": "https://speedrun.a16z.com/companies/sterling", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C70", + "name": "Superintelligence Foundry", + "url": "https://speedrun.a16z.com/companies/superintelligence-foundry", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C71", + "name": "Switchfrog", + "url": "https://speedrun.a16z.com/companies/switchfrog", + "categoryId": "C03", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C72", + "name": "Tenera", + "url": "https://speedrun.a16z.com/companies/tenera", + "categoryId": "C05", + "kind": "company", + "profileStatus": "archive-only", + "status": "linked", + "evidenceIds": [ + "SR007R-ROSTER", + "SR26-TENERA" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。已按唯一档案链接关联公司,原始公司与收入不重复计数。", + "companyId": "AI094" + }, + { + "id": "SR007R-C73", + "name": "Truli", + "url": "https://speedrun.a16z.com/companies/truli", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C74", + "name": "Valent", + "url": "https://speedrun.a16z.com/companies/valent", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C75", + "name": "Vela Energy", + "url": "https://speedrun.a16z.com/companies/vela-energy", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C76", + "name": "Vene Health", + "url": "https://speedrun.a16z.com/companies/vene-health", + "categoryId": "C07", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C77", + "name": "Vound", + "url": "https://speedrun.a16z.com/companies/vound", + "categoryId": "C02", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C78", + "name": "Zoah", + "url": "https://speedrun.a16z.com/companies/zoah", + "categoryId": "C04", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + }, + { + "id": "SR007R-C79", + "name": "Zorbe", + "url": "https://speedrun.a16z.com/companies/zorbe", + "categoryId": "C01", + "kind": "company", + "profileStatus": "archive-only", + "status": "pending-year", + "evidenceIds": [ + "SR007R-ROSTER" + ], + "note": "SR007公开目录发现位置;按任务/行业标签作候选初分类,不把批次当成立年或把宣传营收转为财务观测。本轮仅目录载荷,独立档案、成立/主体及AI主营/交付仍需逐项核。" + } + ] } ], "directoryRechecks": [ diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 9600bf4..927ee10 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-11-01-source-accounting-1", + "version": "2026-11-01-sr007-public-roster-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -3040,9 +3040,22 @@ "speedrun.a16z.com" ], "initialAccess": "见具体证据访问记录", - "boundary": "投资机构公司介绍定向样本,收入数字仍多来自公司。 新增8项2026名录定向核查并登记候选台账(7项SR007、Bota SR006),不等全部批次或两年目录。 另登记8项2025年定向公司(SR005一项、SR006五项、SR007两项);动态目录静态仅外壳、浏览器超时,不认定全量。 另从2026竞赛名单追Bounty的SR007原始档案;GMV及经常客户承诺非自身已实现ARR,非完整目录。", - "nextCheck": "核币种、相对时间及管线/履历;未读取的页面保持缺项。 区分live ARR、signed/contracted ARR、固定法律承诺费用、管线、目标交易量及客户收益;Nexor原$不自动当USD,财务日历截至日和合同底表留缺。 补Hotbox两个ARR时点、OneGC试点包含关系及律所/平台收入拆分、Omi等待名单付费转化、DRS应用与合并口径、Cedar签约履行和Loops可读官网。", - "limitation": "来源可读不等于声明已独立验证。" + "boundary": "原有投资方公司定向个案和2025/2026补查保留。2026-11-01普通公开HTML内嵌载荷明确默认SR007的79条,逐一登记20关联(17复用、3新增)/59主体年份待核;75普通UUID链接与79载荷分列。此前文本仅外壳不等无名单,本次不执行站点脚本或读取私有接口。SR005/SR006公开参数仍返回默认SR007,其他批次/两年目录未穷尽。投资方和公司宣传收入非独立验证,Bounty部署/承诺及Alven当前部署金额不作已实现ARR。", + "nextCheck": "先补SR007剩余59条独立档案、官网及成立/主体与AI主营;同时建立其他批次的公开边界,不能按请求参数认读取成功。Alven的ROOMSS2024/品牌2025与海外主体沿革、各公司币种/日历财务日/实际合同和人工、设备、模型成本待核;原Nexor/Hotbox/OneGC/Omi/DRS/Cedar/Loops缺项继续保留。", + "limitation": "来源可读不等于声明已独立验证。", + "rosterAudit": { + "url": "https://speedrun.a16z.com/companies", + "accessedAt": "2026-11-01", + "method": "匿名普通HTML的__NEXT_DATA__中pageProps.companies;只解析JSON不执行JS", + "defaultCohort": "SR007", + "reportedCount": 79, + "recordCount": 79, + "next": null, + "previous": null, + "htmlUuidProfileLinks": 75, + "htmlSha256": "32a8e1d9e6c9a2581077aed058767c46f03cdffdab9b0086ee9bd0c86094e152", + "candidateBatchId": "SR007-public-roster-2026-1" + } }, { "id": "S15", diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 79bc6d8..2edfd41 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,6 +1,6 @@ { - "sourceVersion": "2026-11-01-source-accounting-1", - "asOf": "2026-10-31", + "sourceVersion": "2026-11-01-sr007-public-roster-1", + "asOf": "2026-11-01", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", "note": "独立Python复算参考值,仅验证样本计算;不是行业估计或财务审计。", diff --git a/scripts/audit-ai-research.py b/scripts/audit-ai-research.py index e9d0c87..8d146bd 100644 --- a/scripts/audit-ai-research.py +++ b/scripts/audit-ai-research.py @@ -42,6 +42,13 @@ def source_register(): assert source['boundary'] and source['nextCheck'] if source['id'] == 'S01': assert source.get('coverageSummary') == yc_coverage_summary(), 'YC source summary is stale' + if source['id'] == 'S14' and source.get('rosterAudit'): + roster = source['rosterAudit'] + batch = next(batch for batch in DATA['candidateBatches'] if batch['id'] == roster['candidateBatchId']) + assert batch['sourceId'] == 'S14' and not batch['complete'] + assert roster['defaultCohort'] == 'SR007' and roster['next'] is None + assert len(batch['records']) == roster['recordCount'] == roster['reportedCount'] + assert len({row['url'] for row in batch['records']}) == roster['recordCount'] if source['url']: assert urlsplit(source['url']).scheme in {'http', 'https'} and urlsplit(source['url']).netloc for host in source['hosts']: -- 2.52.0