From e65d90c78b0beda9e68843907f7d656c9fd5dcb6 Mon Sep 17 00:00:00 2001 From: Codex Bot Date: Fri, 30 Oct 2026 18:10:35 +0800 Subject: [PATCH] Resolve Utopai founding history and preserve Fundraisly entity gaps --- apps/docs/scripts/auth-cli.ts | 2 +- apps/docs/tests/research.test.ts | 8 +-- content/research/ai-companies.seed.json | 61 +++++++++++++++++++--- content/research/ai-companies.sources.json | 6 +-- content/research/ai-income-analysis.json | 2 +- 5 files changed, 64 insertions(+), 15 deletions(-) diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 6dcc78a..afbc7e7 100644 --- a/apps/docs/scripts/auth-cli.ts +++ b/apps/docs/scripts/auth-cli.ts @@ -183,7 +183,7 @@ async function main() { const research = await researchResponse.json(); assert.equal(research.companies.length, 1022); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 1245); + assert.equal(research.evidence.length, 1248); assert.equal(research.observations.length, 189); 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 419eaf0..2854acc 100644 --- a/apps/docs/tests/research.test.ts +++ b/apps/docs/tests/research.test.ts @@ -24,7 +24,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, 1022); - assert.equal(initial.evidence.length, 1245); + assert.equal(initial.evidence.length, 1248); assert.equal(initial.observations.length, 189); 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"); @@ -66,7 +66,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, 58); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 8); - assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 26); + assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 27); 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")!), []); @@ -307,7 +307,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, 8); + assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 7); }); test("product pivots and founder histories do not become new company years or current revenue", () => { @@ -342,7 +342,7 @@ test("Chinese discovery entries preserve unread articles and use separate primar assert.equal(batch.records.length, 4); assert.ok(batch.records.every((row) => row.kind === "company" && row.profileStatus === "unavailable")); assert.equal(batch.records.filter((row) => row.status === "linked").length, 2); - assert.equal(batch.records.find((row) => row.name === "Utopai")?.status, "pending-year"); + assert.equal(batch.records.find((row) => row.name === "Utopai")?.status, "outside-cohort"); assert.ok(!snapshot.observations.some((o) => ["PS-CODE", "SG-START", "SG-APR", "SSI-HISTORY"].includes(o.evidence)), "task costs, investment, capacity and financing are not revenue"); const prism = snapshot.companies.find((c) => c.id === "AI075")!; assert.equal(prism.team, null, "a team range or linked employees must not become exact headcount"); diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index f9fb801..8e0bc78 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-30-goldfish-1", + "version": "2026-10-30-utopai-1", "asOf": "2026-10-30", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -45673,6 +45673,39 @@ "kind": "公司产品文档", "summary": "说明经操作系统辅助功能读取屏幕文字、设备本地存储记忆,运行于macOS与Windows,并提供写作与上下文功能。", "limitation": "属于产品描述,非独立测试或安全审计;本地记忆不等所有模型推理在本地,不以文档可读判定技术领先。" + }, + { + "id": "UTOPAI-HISTORY", + "companyId": null, + "title": "Utopai官方成立与品牌沿革", + "url": "https://www.utopaistudios.com/en/about", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司官方材料", + "summary": "官网明确Founded 2022,历史段说明以Cybever起步,2025转为Utopai Studios,延续既有技术并拓展影视制作。", + "limitation": "公司自述非注册证明;2025更名、2026产品/模型发布与未来影视片单不等新公司、已确认收入或ARR,团队Members不是统一员工口径。" + }, + { + "id": "UTOPAI-FAQ", + "companyId": null, + "title": "Utopai公司与PAI产品边界", + "url": "https://www.utopaistudios.com/en/faq", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司官方材料", + "summary": "FAQ区分Utopai Studios公司、PAI制作平台与其中的Utopai X视频模型,并说明自有/合拍影视业务。", + "limitation": "产品、模型、区域制作业务不各自新增公司;官方对比不当独立技术评测,影片计划或合作不当已确认公司收入。" + }, + { + "id": "PH-FUNDRAISLY-PROFILE", + "companyId": null, + "title": "Fundraisly公开主页的Accumulator关系", + "url": "https://www.linkedin.com/company/fundraisly", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司公开主页自述", + "summary": "公开主页链接fundraisly.com,称属于Accumulator,结合投资者匹配、引荐路径与外联服务。页面没有成立年份字段。", + "limitation": "业务与关联集团关系不能替代Accumulator Fundraising LLC的注册年份;页面2—10人数范围及关联档案数不当精确团队人数,团队筹资和客户融资不当收入。" } ], "reviews": [ @@ -46994,6 +47027,19 @@ ], "handling": "收入、完整团队规模与精确注册日留缺;不将创始人历史业绩、点击数或免费测试推算为当前ARR、客户数或零收入。", "scope": "companies" + }, + { + "id": "UTOPAI-R-HISTORY", + "type": "更名与成立年边界", + "company": "Utopai Studios(既有公司候选)", + "summary": "官网自述2022创立Cybever、2025更名并拓展影视制作,非2025—2026新公司。", + "evidenceIds": [ + "JQ-UTOPAI", + "UTOPAI-HISTORY", + "UTOPAI-FAQ" + ], + "handling": "按既有业务排除;保留中文报道未读全文的访问缺项。品牌、模型、制作平台与区域业务不重复计数,估值、片单及排名不导入收入观测。", + "scope": "excluded-candidate" } ], "coverage": { @@ -47026,11 +47072,12 @@ "kind": "product", "profileStatus": "readable", "status": "pending-year", - "note": "运营主体Accumulator Fundraising LLC;成立年待核。固定/经常性或按通话的服务收费需拆分;Gett历史ARR、创始人及客户筹资不作Fundraisly收入。", + "note": "运营主体Accumulator Fundraising LLC;成立年待核。固定/经常性或按通话的服务收费需拆分;Gett历史ARR、创始人及客户筹资不作Fundraisly收入。 公司公开主页称属于Accumulator,但无成立年份字段,保持待核。", "evidenceIds": [ "PH-FUNDRAISLY-ABOUT", "PH-FUNDRAISLY-ENTITY", - "PH-FUNDRAISLY-PLAN" + "PH-FUNDRAISLY-PLAN", + "PH-FUNDRAISLY-PROFILE" ] }, { @@ -47660,11 +47707,13 @@ "categoryId": "C08", "kind": "company", "profileStatus": "unavailable", - "status": "pending-year", + "status": "outside-cohort", "evidenceIds": [ - "JQ-UTOPAI" + "JQ-UTOPAI", + "UTOPAI-HISTORY", + "UTOPAI-FAQ" ], - "note": "搜索摘录有公司与成立线索,但直达仅登录外壳,原始成立、主体和业务材料未补齐,不把估值、片单或模型排名作为公司收入或独立技术验证。" + "note": "官网自述2022以Cybever成立、2025更名Utopai并转向影视制作;2026品牌/模型报道不作新公司成立年。作为既有业务排除;中文报道仍未读全文,融资估值、模型排名及未来片单不作收入。" } ] }, diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index d69e607..0293dcf 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-30-16", + "version": "2026-10-30-17", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -204,8 +204,8 @@ "pro.jiqizhixin.com" ], "initialAccess": "首页可读取", - "boundary": "已登记4篇定向检索线索;三篇直达仅登录外壳,一篇读取失败。2项经公开原始资料补证关联公司,1项范围外,1项仍待核;未阅读全文或穷尽两年档案。", - "nextCheck": "补公开可读文章、2025档案及Utopai原始成立材料;受限正文留缺,不以搜索摘录代全文。", + "boundary": "已登记4篇定向检索线索;三篇直达仅登录外壳,一篇读取失败。2项经公开原始资料关联公司,SSI与Utopai经原始历史材料判为范围外,0项成立年待核;未阅读全文或穷尽两年档案。", + "nextCheck": "补公开可读文章及2025—2026档案;受限正文留缺,不以搜索摘录代全文,更名与产品发布不新增公司。", "limitation": "全文访问受限;仅作发现时明确标识,技术和财务另追原始资料", "accessRecheckedAt": "2026-10-30" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 4561e7a..6acde9d 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-30-goldfish-1", + "sourceVersion": "2026-10-30-utopai-1", "asOf": "2026-10-30", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business",