From 9c32f777224eed96cbb668700b613d138f4b7ad9 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Sun, 1 Nov 2026 02:28:52 +0800 Subject: [PATCH] Classify two SR004 businesses and preserve unresolved brand founding dates --- apps/docs/scripts/auth-cli.ts | 4 +- apps/docs/tests/research.test.ts | 51 ++- content/research/ai-companies.seed.json | 407 +++++++++++++++++++-- content/research/ai-companies.sources.json | 13 +- content/research/ai-income-analysis.json | 2 +- scripts/audit-ai-research.py | 4 + 6 files changed, 437 insertions(+), 44 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index eae5b7b..96798c9 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, 1259); + assert.equal(research.companies.length, 1261); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 5144); + assert.equal(research.evidence.length, 5161); assert.equal(research.observations.length, 491); 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 9f22815..bab199c 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -123,11 +123,11 @@ 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, 1259); - assert.equal(initial.evidence.length, 5144); + assert.equal(initial.companies.length, 1261); + assert.equal(initial.evidence.length, 5161); assert.equal(initial.observations.length, 491); const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType); - assert.equal(businessReviews.length, 7); + assert.equal(businessReviews.length, 8); 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"); @@ -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, 251); - assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 150); - assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 56); + assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 254); + assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 151); + assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 57); 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), 1259); + assert.equal(summary.reduce((n, c) => n + c.count, 0), 1261); assert.equal(summary.reduce((n, c) => n + c.self, 0), 63); 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), 1175); + assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1177); 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, 250); + assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 252); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 28); assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1); assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown"); @@ -644,11 +644,11 @@ test("public Speedrun cohort rosters preserve the finite boundary without invent assert.equal(new Set(rows.map((row) => row.url)).size, 321); const newlyRegistered = rosters.filter((batch) => !batch.id.startsWith("SR007-")).flatMap((batch) => batch.records); assert.equal(newlyRegistered.length, 242); - assert.equal(newlyRegistered.filter((row) => row.status === "pending-year").length, 0); - assert.equal(newlyRegistered.filter((row) => row.status === "linked").length, 15); + assert.equal(newlyRegistered.filter((row) => row.status === "pending-year").length, 2); + assert.equal(newlyRegistered.filter((row) => row.status === "linked").length, 17); assert.equal(newlyRegistered.filter((row) => row.status === "existing-outside-cohort").length, 1); assert.equal(newlyRegistered.filter((row) => row.status === "outside-cohort").length, 144); - assert.equal(newlyRegistered.filter((row) => row.status === "pending-ai").length, 82, + assert.equal(newlyRegistered.filter((row) => row.status === "pending-ai").length, 78, "a known self-reported founding year does not by itself establish the current AI business"); assert.equal(newlyRegistered.filter((row) => row.profileStatus === "readable").length, 232); assert.ok(newlyRegistered.filter((row) => row.status === "outside-cohort").every((row) => @@ -677,6 +677,31 @@ test("public Speedrun cohort rosters preserve the finite boundary without invent "future GPU capacity, free trials, customer savings and unread financial claims are not realized revenue"); }); +test("Speedrun brand dates and survey benchmark scores do not create new-company revenue", () => { + const snapshot = seed as ResearchSnapshot; + const rows = snapshot.candidateBatches!.flatMap((batch) => batch.records); + for (const id of ["SR004R-C11", "SR004R-C20"]) { + const row = rows.find((item) => item.id === id)!; + assert.equal(row.status, "pending-year", "a known brand year must retain unresolved underlying entity dates"); + assert.equal(row.companyId, undefined); + assert.ok(row.evidenceIds!.some((proof) => proof.startsWith("SR004F2-"))); + } + for (const id of ["SR004R-C08", "SR004R-C15"]) { + assert.equal(rows.find((item) => item.id === id)!.status, "pending-ai"); + } + for (const [id, category] of [["AI168", "C06"], ["AI169", "C05"]]) { + const company = snapshot.companies.find((item) => item.id === id)!; + assert.equal(company.cat, category); + assert.equal(company.revenueStatus, "unknown"); + assert.equal(company.technicalReview!.level, "description"); + } + assert.ok(!snapshot.observations.some((row) => row.evidence.startsWith("SR004F2-")), + "brand-deal opportunities, listed fees and survey agreement are not financial observations"); + const model = snapshot.reviews.find((row) => row.id === "MODEL1-SIMULATION-PANEL")!; + assert.deepEqual(reviewCompanyIds(snapshot, model), ["AI169"]); + assert.ok(model.evidenceIds.includes("SR004F2-REHEARSALS-PRICE")); +}); + 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")!; @@ -704,7 +729,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, 133); }); 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 0550092..68af3e2 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-11-01-sr-profile-audit-1", + "version": "2026-11-01-sr004-business-2", "asOf": "2026-11-01", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -40061,6 +40061,86 @@ "SRPRO1-BEAD-TERMS" ] } + }, + { + "id": "AI168", + "name": "Marlo", + "url": "https://marlo.today", + "channel": "S14", + "cat": "C06", + "year": 2025, + "team": 5, + "location": "San Francisco, California, United States of America(投资方资料)", + "business": "人才经纪机构的AI品牌交易工作台,处理询盘、条款、草稿及回款流程。", + "buyer": "多创作者经纪/管理机构,兼有高inbound独立创作者", + "delivery": "当前演示/early access;Gmail接入,默认草稿,自动发送须另开", + "price": "价格/账期以订单或计划为准,公开金额未取得", + "businessModel": "交易流程软件与实施,按席位/账号/交易收费及分成实际合同未核;模型/邮件集成/人工审核成本须分记", + "entityBasis": "Marlo Today, Ltd.公开条款自述,独立登记及实际采购主体未核", + "stage": "当前演示/early access;Gmail接入,默认草稿,自动发送须另开", + "cohort": "投资方自报2025成立;独立登记及品牌起点待核", + "teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知", + "sourceType": "公开投资方档案及公司官网/条款", + "notes": "机会/客户交易/案例效果、额度标价及试点都不当自身已实现ARR;技术描述与独立验证分开。", + "evidenceIds": [ + "SRPRO1-P-SR004R-C25", + "SR004F2-MARLO-HOME", + "SR004F2-MARLO-TERMS" + ], + "revenueStatus": "unknown", + "classificationBasis": "按交付任务归类:Marlo人才机构的收入流程为C06,Rehearsals跨产品/营销的企业研究为C05,不按AI/模型/创作者标签分类。", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-11-01", + "summary": "只读公开交付/条款及Rehearsals基准方法,未连接邮箱/运行模拟;厂商结果、标志和内部harness不当独立性能或财务审计。", + "evidenceIds": [ + "SRPRO1-P-SR004R-C25", + "SR004F2-MARLO-HOME", + "SR004F2-MARLO-TERMS" + ] + } + }, + { + "id": "AI169", + "name": "Rehearsals", + "url": "https://www.runrehearsals.com/", + "channel": "S14", + "cat": "C05", + "year": 2025, + "team": 10, + "location": "New York, New York, United States of America(投资方资料)", + "business": "真人面板AI分身模拟研究,支持产品、定价、营销和留存决策。", + "buyer": "企业研究、产品及营销团队", + "delivery": "平台/协作报告,30日pilot;API/MCP为高级套餐,未实际测试", + "price": "按twin访谈额度分档,不限席位;未读到金额,Team月到期与高级年池分开", + "businessModel": "模拟研究用量套餐+真人招募/验证及高级治理;不是纯按席位,真实面板/人工审核/推理和销售交付成本待核", + "entityBasis": "Deep Prediction Inc. dba Rehearsals条款自述,独立注册原件未核", + "stage": "平台/协作报告,30日pilot;API/MCP为高级套餐,未实际测试", + "cohort": "投资方自报2025成立;独立登记及品牌起点待核", + "teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知", + "sourceType": "公开投资方档案及公司官网/条款", + "notes": "机会/客户交易/案例效果、额度标价及试点都不当自身已实现ARR;技术描述与独立验证分开。", + "evidenceIds": [ + "SRPRO1-P-SR004R-C34", + "SR004F2-REHEARSALS-HOME", + "SR004F2-REHEARSALS-PRICE", + "SR004F2-REHEARSALS-TERMS", + "SR004F2-REHEARSALS-BENCH" + ], + "revenueStatus": "unknown", + "classificationBasis": "按交付任务归类:Marlo人才机构的收入流程为C06,Rehearsals跨产品/营销的企业研究为C05,不按AI/模型/创作者标签分类。", + "technicalReview": { + "level": "description", + "reviewedAt": "2026-11-01", + "summary": "只读公开交付/条款及Rehearsals基准方法,未连接邮箱/运行模拟;厂商结果、标志和内部harness不当独立性能或财务审计。", + "evidenceIds": [ + "SRPRO1-P-SR004R-C34", + "SR004F2-REHEARSALS-HOME", + "SR004F2-REHEARSALS-PRICE", + "SR004F2-REHEARSALS-TERMS", + "SR004F2-REHEARSALS-BENCH" + ] + } } ], "observations": [ @@ -102868,7 +102948,7 @@ }, { "id": "SRPRO1-P-SR004R-C25", - "companyId": null, + "companyId": "AI168", "title": "Marlo公开独立档案:成立/团队字段", "url": "https://speedrun.a16z.com/companies/marlo", "publishedAt": null, @@ -102967,7 +103047,7 @@ }, { "id": "SRPRO1-P-SR004R-C34", - "companyId": null, + "companyId": "AI169", "title": "Rehearsals公开独立档案:成立/团队字段", "url": "https://speedrun.a16z.com/companies/rehearsals", "publishedAt": null, @@ -104339,6 +104419,193 @@ "kind": "公司官网交付/定价与条款复核", "summary": "条款定义Bead Technologies Inc. Delaware并明确authorized free trial/evaluation;不以客户内容训练,服务提供商不训练/保留用于人工评估;终止30日删除有条件。", "limitation": "正式商业订单、费率/实施/服务承诺未取得,免费评估不能当已实现ARR;首页版权2024不是成立字段,投方2025仍属自报待登记。" + }, + { + "id": "SR004F2-COVERD-HOME", + "companyId": null, + "title": "Coverd三产品与AI主营缺项", + "url": "https://www.coverd.us/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "首页列Arcade、实物卡牌Packs及Rich Card候补;同账号可充值/兑换,页脚Coverd, Inc.。", + "limitation": "可读内容未说明具体AI任务;评级/投资方标志及游戏或卡业务不自动纳AI公司,充值/返现/卡牌交易额非软件净收入。" + }, + { + "id": "SR004F2-COVERD-TERMS", + "companyId": null, + "title": "Coverd虚拟币条款与业务口径", + "url": "https://www.coverd.us/terms", + "publishedAt": "2026-06-03", + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "条款主体Coverd Inc.,描述游戏/虚拟币许可及活动,与首页多产品并列保留。", + "limitation": "仅记录商业交付,不作业务法律认定;未玩游戏、购卡或开户。免费游戏不证明AI,产品补充条款和具体净费未核。" + }, + { + "id": "SR004F2-DIAL-HOME", + "companyId": null, + "title": "Dial通信基础设施及号码/用量收费", + "url": "https://www.getdial.ai/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "AI Agent号码/语音/SMS等接口。首页PAYG原$3/号码月另计用量、赠送$5试用;另有按号码月/年订阅。", + "limitation": "标价与赠额不当收入,电信市场规模非自身财务;iMessage/WhatsApp等资格和beta限制分列。只读业务,未安装CLI/技能、注册、验证或发通信。" + }, + { + "id": "SR004F2-DIAL-TERMS", + "companyId": null, + "title": "Dial品牌与Genway合同实体", + "url": "https://www.getdial.ai/terms", + "publishedAt": "2026-06-21", + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "美国客户合同为Genway Inc.,其余为Genway Israel Ltd(516887684),明确Dial为品牌。自助Flat Fee原USD20/号码月或200/年,PAYG预存;12月不活跃余额失效。", + "limitation": "条款与首页价格属不同页面快照,当前结算须核;预存现金与消耗/经常净费分开。美国法人成立原件及品牌起点未核,不能仅凭投资方2025认新主体;自助无SLA,企业合同另行。" + }, + { + "id": "SR004F2-GENWAY-REGISTER", + "companyId": null, + "title": "Genway同编号2023登记转载", + "url": "https://taagidim.co.il/company/516887684", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公开登记转载及公司编号交叉核对", + "summary": "普通HTTP200可读GENWAY ISRAEL LTD,编号516887684,转载设立日2023-11-08;编号与Dial条款对应。", + "limitation": "私人登记聚合站而非官方登记原件;仅作年份冲突线索,美国母公司/品牌沿革未核,不据此直接排除或认财务异常。" + }, + { + "id": "SR004F2-GENWAY-DEALROOM", + "companyId": null, + "title": "Genway公开档案与业务沿革线索", + "url": "https://app.dealroom.co/companies/genway", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公开数据库主体及成立字段交叉核对", + "summary": "公开卡片列Launch2023、编号516887684、genway.ai及用户研究业务;与Dial条款编号对应。", + "limitation": "二手数据库而非登记原件,自动简介不是独立事实;融资/估值不作收入,旧研究产品与新通信品牌、母子公司沿革待核。" + }, + { + "id": "SR004F2-FIGMENT-PROFILE", + "companyId": null, + "title": "Figment互动叙事与工具规划", + "url": "https://speedrun.a16z.com/companies/figment", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公开投资方独立档案业务人工核对", + "summary": "公开档案自报2025、3人;描述消费者个性化互动故事平台,以及视觉/叙事创作工具。", + "limitation": "已读业务描述,但规划不等当前上线或付费;Pixar/Epic履历非客户/财务/技术效果。官网暂不可读,保留当前交付及精确主体待核。" + }, + { + "id": "SR004F2-FIGMENT-ACCESS", + "companyId": null, + "title": "Figment官网访问缺项", + "url": "https://figment.games/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "官网只读访问结果及缺项", + "summary": "2026-11-01网页工具不可读;匿名普通HTTP在无www及www均连接重置,未取得官网正文。", + "limitation": "访问失败不证明停业/无收入,也不反证投资方描述;不能猜报价、功能状态或登记,后续换可核一手来源。" + }, + { + "id": "SR004F2-HUMAN-HOME", + "companyId": null, + "title": "Human²生态与品牌主体", + "url": "https://humansquared.com/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "官网AI内容/分发Daas、消费者Waveful及筹划中Institute,页脚明确Human²为Waveful Inc.品牌。", + "limitation": "多产品不能拆成多家公司重复计数;实验室愿景/艺术图像不作模型性能或当前功能,Waveful社交增强仍有未来规划。" + }, + { + "id": "SR004F2-HUMAN-TERMS", + "companyId": null, + "title": "Human²品牌条款与规划说明", + "url": "https://humansquared.com/terms/", + "publishedAt": "2026-09-10", + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "条款明确品牌属于Waveful Inc.;各产品有独立条款,研究/愿景不承诺特定功能、效果及发布日期,Institute为筹划。", + "limitation": "非独立新法人证明;Daas/社交应用/研究主体之间成立、产品启动与财务范围待拆核,不能以网站2026或投资方2025直接定成立。" + }, + { + "id": "SR004F2-WAVEFUL-APPLE", + "companyId": null, + "title": "Waveful官方商店元数据的旧产品日期", + "url": "https://itunes.apple.com/lookup?id=1532913255&country=us", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "官方应用商店产品发布字段", + "summary": "Apple匿名lookup返回app.waveful,卖方Waveful Inc.,releaseDate为2020-12-12T08:00:00Z。", + "limitation": "这是产品发布日,绝非Waveful Inc.注册日或Human²品牌成立日;与官网品牌归属结合提示主体/产品沿革待核,不自动推2020成立或排除整个品牌。" + }, + { + "id": "SR004F2-MARLO-HOME", + "companyId": "AI168", + "title": "Marlo人才机构的AI交易工作流", + "url": "https://www.marlo.today/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "面向多创作者人才机构,接Gmail历史邮件建Deal Graph,抽取条款/交付、草拟回复并跟踪发票付款,当前入口演示/early access。", + "limitation": "按交易/收入运营任务分类,非内容生成;机构称300万inbound机会/数千品牌交易,不等Marlo收入或付费客户数,案例未独立核。" + }, + { + "id": "SR004F2-MARLO-TERMS", + "companyId": "AI168", + "title": "Marlo合同主体、人工发送及收费缺项", + "url": "https://www.marlo.today/legal/terms-of-service", + "publishedAt": "2026-10-14", + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "主体Marlo Today, Ltd.;回复默认草稿,自动发送须显式开启;使用第三方AI,客户内容不训练模型;费用在订单或所选计划。", + "limitation": "商业实价/实际采购与净收入未核;客户代理的创作者不是Marlo合同代理关系,不能把创作者交易额/代理分成自动算其财务。企业授权邮箱与数据处理待实际合同验证。" + }, + { + "id": "SR004F2-REHEARSALS-HOME", + "companyId": "AI169", + "title": "Rehearsals真人面板模拟研究服务", + "url": "https://www.runrehearsals.com/", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "自有真人面板、模型及AI模拟研究;客户留问题/报告权利,底层twins/面板/模型仍由平台持有;页脚Deep Prediction Inc.。", + "limitation": "模型/面板/客户效果均公司自述;市场/客户ROAS非自身财务,未做模拟或招募。不凭自称自研模型归基础模型业务。" + }, + { + "id": "SR004F2-REHEARSALS-PRICE", + "companyId": "AI169", + "title": "Rehearsals访谈额度及人工验证分母", + "url": "https://www.runrehearsals.com/pricing", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "不限席位,1额度=1 twin回答至20题。Team每月5000额度月到期;Program/Enterprise年池120000/360000。另含真人enrichment及年度验证次数,30日pilot。", + "limitation": "页面未给金额;月等效与年池/不结转基础额度不同。enrichment、真人验证/招募成本及模型成本需核;API/MCP高级权限按价格页,pilot不自动当付费。" + }, + { + "id": "SR004F2-REHEARSALS-TERMS", + "companyId": "AI169", + "title": "Rehearsals参与者授权与客户合同分开", + "url": "https://www.runrehearsals.com/terms", + "publishedAt": "2026-01-01", + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "Deep Prediction Inc. dba Rehearsals;研究参与者可获报酬并提供持续内容授权,企业客户可能另签合同;预测输出不保证实际行为。", + "limitation": "参与者与企业客户的数据授权/成本不同;通用条款不替实际MSA/金额/付款凭证,客户可永久使用输出不等拥有面板/模型或转售权。" + }, + { + "id": "SR004F2-REHEARSALS-BENCH", + "companyId": "AI169", + "title": "Rehearsals分布相合度与评估边界", + "url": "https://www.runrehearsals.com/human-behavior-bench", + "publishedAt": null, + "accessedAt": "2026-11-01", + "kind": "公司官网业务、条款及交付核对", + "summary": "V1以1244名美国成人、1199题的群体回答分布计算100×(1−TVD);239公开/960保留。Engram94.1使用内部harness,基础模型为Kaggle评估。", + "limitation": "不是94.1%个体/购买预测正确率;跨国/个体一致性及未来行为未验证,分差未证统计显著。自家模型不同评估系统,不当独立自研性能结论,未运行benchmark。" } ], "reviews": [ @@ -114735,6 +115002,83 @@ "SRPRO1-BEAD-TERMS", "SRPRO1-AMBIGUOUS-HOME" ] + }, + { + "id": "SR004F2-R-DELIVERY", + "type": "任务分类与机会/交易/收费分母", + "company": "Marlo、Rehearsals", + "scope": "companies", + "summary": "两家自报2025且当前AI交付可对应:Marlo为人才机构交易工作台,Rehearsals为企业模拟研究,按任务分类。", + "handling": "机会/品牌交易/客户ROAS、报价/额度与自身收入分开;Marlo不自动是创作者代理关系,Rehearsals不限席位不自动是无限研究,未新增财务观测。", + "evidenceIds": [ + "SR004F2-MARLO-HOME", + "SR004F2-MARLO-TERMS", + "SR004F2-REHEARSALS-PRICE" + ], + "companyIds": [ + "AI168", + "AI169" + ] + }, + { + "id": "SR004F2-R-BENCH", + "type": "群体分布基准与独立技术证据边界", + "company": "Rehearsals", + "scope": "companies", + "summary": "官网94.1是特定美国群体调查回答的分布相合分,不等个体或未来购买预测正确率;自家Engram为内部harness。", + "handling": "基准页限制比首页营销语更窄,基础模型与自家系统评估过程分开;未独立复现,不作最高技术等级或研究行业财务优劣依据。", + "evidenceIds": [ + "SR004F2-REHEARSALS-BENCH", + "SR004F2-REHEARSALS-TERMS" + ], + "companyIds": [ + "AI169" + ] + }, + { + "id": "SR004F2-R-BRANDS", + "type": "品牌日期、旧产品与法人年份待核", + "company": "Dial、Human²", + "scope": "excluded-candidate", + "summary": "Dial条款Genway合同编号对应2023登记转载;Human²为Waveful Inc.品牌,官方商店app.waveful显示2020产品发布。均与投资方2025范围不一致。", + "handling": "两项转年份待核,不直接判旧年公司/造假;需母子公司注册原件、品牌/产品沿革和财务主体。旧产品发布日不当注册日,融资/充值/旧业务收入不迁给新品牌。", + "evidenceIds": [ + "SR004F2-DIAL-TERMS", + "SR004F2-GENWAY-REGISTER", + "SR004F2-GENWAY-DEALROOM", + "SR004F2-HUMAN-TERMS", + "SR004F2-WAVEFUL-APPLE" + ] + }, + { + "id": "SR004F2-R-PENDING", + "type": "官网访问和AI主营缺项保留", + "company": "Coverd、Figment", + "scope": "dataset", + "summary": "Coverd可读官网/条款未说明AI主营;Figment档案有AI叙事说明但官网两域名HTTP重置,当前交付未核。", + "handling": "保留AI/当前交付待核及各自证据,不因非AI标签/暂时访问失败断言无AI、停业或零收入;下一步需产品一手证据与主体,不重复探测失败页面。", + "evidenceIds": [ + "SR004F2-COVERD-HOME", + "SR004F2-COVERD-TERMS", + "SR004F2-FIGMENT-PROFILE", + "SR004F2-FIGMENT-ACCESS" + ] + }, + { + "id": "MODEL1-SIMULATION-PANEL", + "type": "商业模式初评", + "company": "模拟研究额度+持续维护真人面板", + "scope": "companies", + "summary": "已核事实:Rehearsals按twin访谈额度分档、不限席位,包含不同真人补充访谈/验证配额;Team月到期,高级年池。公开金额、付费留存和单位净贡献缺项。", + "handling": "待验证判断:若客户反复验证产品/营销决策,可试验用量套餐,但应把真人招募/授权/复访/人工核验、模型推理、客户研究支持及销售成本完整入账。先核相对真实人类研究的决策收益、每付费项目净贡献、报告复用及30/90日续费;区分模拟访谈、真人enrichment和验证成本,不能以回答数量/相合分/客户ROAS估自身ARR。", + "evidenceIds": [ + "SR004F2-REHEARSALS-PRICE", + "SR004F2-REHEARSALS-TERMS", + "SR004F2-REHEARSALS-BENCH" + ], + "companyIds": [ + "AI169" + ] } ], "coverage": { @@ -130362,7 +130706,7 @@ "sourceId": "S14", "url": "https://speedrun.a16z.com/api/companies/companyparams?limit=100&offset=0&cohort=SR004", "accessedAt": "2026-11-01", - "scope": "公开匿名目录SR004有限单页,原记录数量/链接不变。当前0关联、0既有超年对照、36旧年不新增、6年份自报已读但AI/主体待核。原未读226档案现已逐一核成立字段;10个目录复用项保留既有证据、本轮未重读。批次不是成立年,成立自报不是独立注册/交付或财务核验。", + "scope": "公开SR004有限名单42项,2关联、36旧年、0既有超年、2品牌/年份待核、2AI主营/当前交付待核。成立/团队为公开自报;目录完整不等注册/产品/财务均审完,原位置/链接不变。", "complete": false, "records": [ { @@ -130473,9 +130817,11 @@ "status": "pending-ai", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C08" + "SRPRO1-P-SR004R-C08", + "SR004F2-COVERD-HOME", + "SR004F2-COVERD-TERMS" ], - "note": "已读独立档案,自报Founded 2025、15人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "自报2025;官网三产品为游戏、实物卡牌及信用卡候补,未读到具体AI主营。保留pending-ai,不把投资/技术履历、充值及返现作AI软件收入。" }, { "id": "SR004R-C09", @@ -130512,12 +130858,16 @@ "categoryId": "C00", "kind": "company", "profileStatus": "readable", - "status": "pending-ai", + "status": "pending-year", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C11" + "SRPRO1-P-SR004R-C11", + "SR004F2-DIAL-HOME", + "SR004F2-DIAL-TERMS", + "SR004F2-GENWAY-REGISTER", + "SR004F2-GENWAY-DEALROOM" ], - "note": "已读独立档案,自报Founded 2025、7人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "AI Agent通信业务已明确,但Dial为Genway品牌;条款编号516887684与登记转载2023-11-08及Dealroom2023对应,和投资方2025有范围差异。美国母公司注册、产品/品牌起点待核,转pending-year而非凭品牌新日期新增公司。" }, { "id": "SR004R-C12", @@ -130571,9 +130921,11 @@ "status": "pending-ai", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C15" + "SRPRO1-P-SR004R-C15", + "SR004F2-FIGMENT-PROFILE", + "SR004F2-FIGMENT-ACCESS" ], - "note": "已读独立档案,自报Founded 2025、3人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "自报2025、3人;档案明确互动AI叙事/创作工具,但官网只读连接重置,当前上线交付、收费及主体待核;不从访问失败推停业或零收入。" }, { "id": "SR004R-C16", @@ -130638,12 +130990,15 @@ "categoryId": "C00", "kind": "company", "profileStatus": "readable", - "status": "pending-ai", + "status": "pending-year", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C20" + "SRPRO1-P-SR004R-C20", + "SR004F2-HUMAN-HOME", + "SR004F2-HUMAN-TERMS", + "SR004F2-WAVEFUL-APPLE" ], - "note": "已读独立档案,自报Founded 2025、8人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "Human²条款自称Waveful Inc.品牌,Apple同卖方app.waveful产品发布2020-12-12;投资方2025可能为品牌/业务起点。产品日不是注册日,转pending-year待沿革;Daas/Waveful/Institute不重复当三家新公司。" }, { "id": "SR004R-C21", @@ -130705,15 +131060,18 @@ "id": "SR004R-C25", "name": "Marlo", "url": "https://speedrun.a16z.com/companies/marlo", - "categoryId": "C00", + "categoryId": "C06", "kind": "company", "profileStatus": "readable", - "status": "pending-ai", + "status": "linked", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C25" + "SRPRO1-P-SR004R-C25", + "SR004F2-MARLO-HOME", + "SR004F2-MARLO-TERMS" ], - "note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "投资方自报2025成立、当前AI主营与官网/条款可对应,已关联;注册、正式合同/付款和技术效果未独立核。", + "companyId": "AI168" }, { "id": "SR004R-C26", @@ -130831,15 +131189,20 @@ "id": "SR004R-C34", "name": "Rehearsals", "url": "https://speedrun.a16z.com/companies/rehearsals", - "categoryId": "C00", + "categoryId": "C05", "kind": "company", "profileStatus": "readable", - "status": "pending-ai", + "status": "linked", "evidenceIds": [ "SRALL1-SR004-ROSTER", - "SRPRO1-P-SR004R-C34" + "SRPRO1-P-SR004R-C34", + "SR004F2-REHEARSALS-HOME", + "SR004F2-REHEARSALS-PRICE", + "SR004F2-REHEARSALS-TERMS", + "SR004F2-REHEARSALS-BENCH" ], - "note": "已读独立档案,自报Founded 2025、10人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。" + "note": "投资方自报2025成立、当前AI主营与官网/条款可对应,已关联;注册、正式合同/付款和技术效果未独立核。", + "companyId": "AI169" }, { "id": "SR004R-C35", diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index 1abf3e8..3f08ab4 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-11-01-sr-profile-audit-1", + "version": "2026-11-01-sr004-business-2", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -3040,8 +3040,8 @@ "speedrun.a16z.com" ], "initialAccess": "见具体证据访问记录", - "boundary": "公开七批321个唯一档案边界、原HTML和匿名GET审计保留。本轮226个此前未读档案均普通HTTP200且slug对应:138明确2018–2024旧年、88自报2025/2026。先补官网的Ambiguous/Anchr/AndThen/Arise/Avenir/Bead六项关联,其余82项年份自报已读但AI主营/当前主体待核,不把标签当AI交付。七批当前86关联、1既有超年对照、145旧年不新增、Alven1年份/主体冲突、88AI主营/主体待核;本系列311个独立档案已读,10个复用位置仅保留既有证据、本轮未重读。目录完整不等全部财务/注册/技术研究,未公开/已移除/未来公司不含;原公司/观测及YC覆盖保留。只解析公开公司字段、不执行网页JS/外部产品,不登录/导出/请求介绍或读取个人资料接口。", - "nextCheck": "逐项补82个新批次两年自报公司的当前官网、AI主营、精确主体/品牌沿革及经营口径;其中Coverd/bins/Belong/Crebit等未明确AI任务,Human²/Atrios/PartyHat等描述稀疏,不凭标签纳入。核10个复用档案最新变化、SR007 Alven及6项AI主营。已关联六家补真实合同/付款/留存、币种/财务日、专业审核/数据/IP/模型/语音/云资源/集成成本;Anchr媒体首单原文、Ambiguous18应用/Agent动作分母、Arise实际容量/利用率、Bead正式商业条款是重点。", + "boundary": "公开七批321个唯一位置及原HTML/GET审计保留;226个补读档案中138明确旧年、88自报两年:其中8项已补官网关联、78项AI主营/当前主体待核、2项转品牌/年份待核。本系列311个独立档案已读,10个复用位置未本轮重读。七批当前88关联、1既有超年对照、145旧年、3品牌/年份待核、84AI主营/交付待核。Dial合同Genway编号对应2023登记转载,Human²品牌与2020 Waveful产品不能直接认2025新法人;Alven仍保留2024主体冲突。Coverd未明确AI任务,Figment官网暂不可读。目录完整不等公司注册/财务/技术核验完成,未公开/移除/未来公司不含;原YC覆盖和财务观测保留。", + "nextCheck": "继续逐项核78个新批次待核及SR007六个AI主营,10个复用档案变化;核Dial美国/以色列实体与Genway旧产品、Human²品牌/Waveful注册沿革及Alven年份。Figment可替代产品一手来源、Coverd具体AI任务仍缺。已关联8家公司补正式合同、付款/留存、币种/财务日和完整交付成本;Rehearsals独立方法评估与实际面板/真人验证成本、Marlo订单/净费与代理客户交易额分开。", "limitation": "来源可读不等于声明已独立验证。", "rosterAudit": { "url": "https://speedrun.a16z.com/companies", @@ -3189,8 +3189,8 @@ }, "outsideTargetYears": 138, "targetYearSelfReports": 88, - "newLinkedCompanies": 6, - "pendingCurrentAIOrIdentity": 82, + "newLinkedCompanies": 8, + "pendingCurrentAIOrIdentity": 78, "records": [ { "candidateId": "SR001R-C01", @@ -4774,7 +4774,8 @@ "evidenceId": "SRPRO1-P-SR006R-C59", "htmlSha256": "bd76c759bbea475b39e88f7f30213a7b1748c721a12bc2081912ddfc322c9919" } - ] + ], + "pendingFoundingIdentity": 2 } }, { diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index bf8a479..f9ee531 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-11-01-sr-profile-audit-1", + "sourceVersion": "2026-11-01-sr004-business-2", "asOf": "2026-11-01", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business", diff --git a/scripts/audit-ai-research.py b/scripts/audit-ai-research.py index 4e413d4..7277bfc 100644 --- a/scripts/audit-ai-research.py +++ b/scripts/audit-ai-research.py @@ -93,6 +93,10 @@ def source_register(): assert sum(e['foundedYear'] in [2025, 2026] for e in entries) == audit['targetYearSelfReports'] assert sum(candidates[e['candidateId']]['status'] == 'linked' for e in entries) == audit['newLinkedCompanies'] assert sum(candidates[e['candidateId']]['status'] == 'pending-ai' for e in entries) == audit['pendingCurrentAIOrIdentity'] + assert sum(candidates[e['candidateId']]['status'] == 'pending-year' for e in entries) == audit['pendingFoundingIdentity'] + assert audit['targetYearSelfReports'] == ( + audit['newLinkedCompanies'] + audit['pendingCurrentAIOrIdentity'] + audit['pendingFoundingIdentity'] + ), 'self-reported years must retain unresolved brand/entity dates' if source['url']: assert urlsplit(source['url']).scheme in {'http', 'https'} and urlsplit(source['url']).netloc for host in source['hosts']: