diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index e88ab7d..2f3ec73 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, 1023); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 1318); + assert.equal(research.evidence.length, 1325); 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 f9bd5bc..1bd9322 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, 1023); - assert.equal(initial.evidence.length, 1318); + assert.equal(initial.evidence.length, 1325); 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, 60); assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 10); - assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 31); + assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 32); 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, 11); + 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", () => { diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 8003d64..15ec264 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-30-battlefield-3", + "version": "2026-10-30-battlefield-4", "asOf": "2026-10-30", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -46516,6 +46516,83 @@ "kind": "加速器原始公告", "summary": "International Accelerator署名公告自述Sponstar于2025年2月成立、2025年3月公开发布,关联Manuela Seve。", "limitation": "页面发布时间2026-02-02,文内电头2026-02-01;与公司主页2024成立冲突,成立、发布、品牌与法律主体分开待核。赞助额、代币、客户ROI和融资不当ARR。" + }, + { + "id": "TC25-JUSTAI-YC", + "companyId": null, + "title": "JustAI:早期业务与主体补核", + "url": "https://www.ycombinator.com/companies/justai", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "YC官方公司资料", + "summary": "YC公司页列Founded 2024、Winter 2024,链接getjust.ai;同页2024新闻仍使用Just Words名称。", + "limitation": "YC资料为公司自述,非工商核验;与justwords.in营销代理及语言学习App分开,创始人旧业务、客户收入及营销提升不作JustAI收入。" + }, + { + "id": "TC25-ZINNIA-HEARST", + "companyId": null, + "title": "Zinnia(getzinnia.ai线索):早期业务与主体补核", + "url": "https://www.hearstlab.com/blog/ceo-jennifer-ryan-of-croux-and-ceo-lauren-goodell-of-zinnia-both-win-100k-investment-onstage-during-pitch-hearstlab-atlanta-event", + "publishedAt": "2024-11-12", + "accessedAt": "2026-10-30", + "kind": "投资机构原始公告", + "summary": "HearstLab于2024-11-12公告已介绍Lauren Goodell创办的Zinnia销售AI业务,并链接getzinnia.com。", + "limitation": "证明同创始人销售业务早于2025,不推精确注册年。旧getzinnia.ai重定向正文仍不可读,法律连续性留缺;投资奖金、市场规模及客户销售额不作ARR。" + }, + { + "id": "TC25-COLLAB-INTERVIEW", + "companyId": null, + "title": "Collabwriting(现域名转Cluing):早期业务与主体补核", + "url": "https://www.howtoweb.co/collabwritings-co-founder-on-winning-spotlight-and-building-a-collaborative-research-powerhouse/", + "publishedAt": "2024-06-06", + "accessedAt": "2026-10-30", + "kind": "竞赛主办方创始人访谈", + "summary": "How to Web于2024-06-06发布Collabwriting联合创始人Sandra Idjoski访谈,回顾2023参赛及现有协作研究产品。", + "limitation": "原Collabwriting业务早于2025;不以访谈日期推精确注册年,现Cluing品牌与法律主体连续性继续留缺,投资和补助不作收入。" + }, + { + "id": "TC25-COLLAB-2023-EVENT", + "companyId": null, + "title": "Collabwriting(现域名转Cluing):早期业务与主体补核", + "url": "https://www.howtoweb.co/40-of-the-most-promising-startups-from-eastern-europe-compete-for-the-e880000-investment-prize-on-the-how-to-web-stage/", + "publishedAt": "2023-09-20", + "accessedAt": "2026-10-30", + "kind": "竞赛主办方原始名单", + "summary": "How to Web官方2023候选页列出Collabwriting,构成早期业务的补充证据。", + "limitation": "页首发表日期2023-09-20,文内电头2023-08-23;均为活动材料日期,不作成立日或当前Cluing主体证明。未将其他2023名单条目加入两年新公司表。" + }, + { + "id": "TC25-ATLANTIX-POLICY", + "companyId": null, + "title": "Atlantix Portal:早期业务与主体补核", + "url": "https://platform.atlantix.cc/assets/files/copyright.pdf", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司官方版权政策", + "summary": "本轮通过官方普通链接取得PDF并渲染核对第1页:政策自述更新于2024-08-29,列ATLANTIX PORTAL L.L.C、Dubai及copyright@atlantix.cc。", + "limitation": "此前直达读取失败记录保留;本轮不声称核对PDF其他页。政策自述日期非独立历史快照或注册证明,需结合产品早期发布记录;不按版权年份或域名注册日推成立日。" + }, + { + "id": "TC25-ATLANTIX-PH2024", + "companyId": null, + "title": "Atlantix Portal:早期业务与主体补核", + "url": "https://www.producthunt.com/products/atlantix?launch=atlantix", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "产品发布平台原始记录", + "summary": "Product Hunt公开产品页关联atlantix.cc创新商业化平台,列2024上线及2024年9月的周榜记录。", + "limitation": "只证明同域名产品2025以前已有发布;结合官方同主体政策归既有业务,不从上线推精确公司成立年,票数和名次不作收入。" + }, + { + "id": "TC25-ATLANTIX-ENTITY", + "companyId": null, + "title": "Atlantix Portal:早期业务与主体补核", + "url": "https://www.atlantix.cc/mvp/terms-of-use", + "publishedAt": null, + "accessedAt": "2026-10-30", + "kind": "公司官方政策", + "summary": "官网名为Terms of Use的页面正文实为隐私政策,列ATLANTIX PORTAL L.L.C并关联platform.atlantix.cc。", + "limitation": "只用于当前运营主体与域名关联,不把标题当成合同性质确认,不推历史注册或收入;政策文本准确性和主体登记仍未独立核验。" } ], "reviews": [ @@ -47978,6 +48055,23 @@ "TC25-SPONSTAR-ACCELERATOR" ], "handling": "6项归范围外既有业务;Sponstar继续待核。公司自述和投资名录非独立注册核验,检索摘录与已读正文分别注明;不新增公司、收入或团队数字。" + }, + { + "id": "TC25-R-LINEAGE", + "type": "早期业务与品牌主体复核", + "company": "2025企业竞赛候选:4项早期业务补核", + "scope": "excluded-candidate", + "summary": "据YC、投资机构2024公告、主办方2023名单及2024访谈、官网政策与2024产品发布记录,补核JustAI、Zinnia、Collabwriting及Atlantix。", + "evidenceIds": [ + "TC25-JUSTAI-YC", + "TC25-ZINNIA-HEARST", + "TC25-COLLAB-INTERVIEW", + "TC25-COLLAB-2023-EVENT", + "TC25-ATLANTIX-POLICY", + "TC25-ATLANTIX-PH2024", + "TC25-ATLANTIX-ENTITY" + ], + "handling": "四项原候选按范围外既有业务排除。成立、发布、政策更新与品牌主体分开;未核法律连续性和不可读正文继续标缺,不新增公司、团队、融资或收入数字。" } ], "coverage": { @@ -48795,12 +48889,13 @@ "categoryId": "C06", "kind": "company", "profileStatus": "unavailable", - "status": "pending-year", + "status": "outside-cohort", "evidenceIds": [ "TC-BF25", - "TC-BF25-ZINNIA" + "TC-BF25-ZINNIA", + "TC25-ZINNIA-HEARST" ], - "note": "官方域名重定向后的正文不可读,成立年和主体连续性留缺,不套用其他同名公司资料。" + "note": "HearstLab 2024-11-12原始公告已关联Lauren Goodell及getzinnia.com销售AI业务;按既有业务排除,不以公告日推成立日。旧域名重定向正文仍不可读,主体连续性留缺。" }, { "id": "TC25-BF-06", @@ -48824,13 +48919,16 @@ "categoryId": "C05", "kind": "company", "profileStatus": "readable", - "status": "pending-year", + "status": "outside-cohort", "evidenceIds": [ "TC-BF25", "TC25-PRIMARY-07", - "TC25-ATLANTIX-ARCHIVE-ACCESS" + "TC25-ATLANTIX-ARCHIVE-ACCESS", + "TC25-ATLANTIX-POLICY", + "TC25-ATLANTIX-PH2024", + "TC25-ATLANTIX-ENTITY" ], - "note": "官网提供技术发现与商业计划平台;成立年、AI主营及运营者待核,不与atlantix.io、Atlantix Global或同名媒体业务混用。 搜索返回早期版权政策线索,但直达PDF本次不可读取。 不记为已读全文;不把检索日期或文件名解释为法人成立日,继续核同一atlantix.cc运营主体。" + "note": "官方PDF第1页自述2024-08-29政策、列ATLANTIX PORTAL L.L.C;当前官网政策关联同主体域名,产品平台列2024上线。按既有业务排除,精确注册及AI主营仍缺;不靠版权年份或域名注册推成立。" }, { "id": "TC25-BF-08", @@ -48884,13 +48982,15 @@ "categoryId": "C05", "kind": "company", "profileStatus": "readable", - "status": "pending-year", + "status": "outside-cohort", "evidenceIds": [ "TC-BF25", "TC25-PRIMARY-11", - "TC25-COLLAB-PROFILE-ACCESS" + "TC25-COLLAB-PROFILE-ACCESS", + "TC25-COLLAB-INTERVIEW", + "TC25-COLLAB-2023-EVENT" ], - "note": "原域名转Cluing,当前官网描述托管Agent与知识工作;更名、主体连续性及成立年待核,演示模板数字不当收入。 直接读取公开主页受到robots限制,未取得本轮正文。 旧域名转Cluing不是充分法律连续性证据;不将第三方历史年份、品牌更名或旧业务业绩自动填入新主体。" + "note": "主办方2023名单及2024创始人访谈证明原Collabwriting业务已存在,按既有业务排除;当前Cluing品牌与法律主体连续性仍待核,不把更名当新成立。" }, { "id": "TC25-BF-12", @@ -48974,12 +49074,13 @@ "categoryId": "C06", "kind": "company", "profileStatus": "readable", - "status": "pending-year", + "status": "outside-cohort", "evidenceIds": [ "TC-BF25", - "TC25-PRIMARY-17" + "TC25-PRIMARY-17", + "TC25-JUSTAI-YC" ], - "note": "域名转getjust.ai,官网描述生命周期营销与个性化Agent;法律主体、成立年及品牌沿革待核,不继承其他同名公司业绩。" + "note": "YC列Founded 2024、W24,链接getjust.ai并保留2024 Just Words新闻;按既有业务排除。不与同名代理或语言App混用,主体注册未独立核验。" }, { "id": "TC25-BF-18", diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index faab83e..1cca4e6 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-30-22", + "version": "2026-10-30-23", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -28,8 +28,8 @@ "techcrunch.com" ], "initialAccess": "AI栏目可读取", - "boundary": "2026首页定向3项已登记。另已读2025年度档案入口与AI第二页,并完整登记一篇2025企业竞赛名单32项:复用1项、范围外25项、待核6项;每项均尝试原始链接,未知与不可读保留。单篇32项不等全部200参赛者、全部分页或两年全量;RSS/API普通请求受限。", - "nextCheck": "继续核本篇6项的成立、主体及AI主营,优先解决Sponstar原始年份冲突、域名更名与不可读项;沿普通2025档案和AI分页扩展其余来源台账,区分参赛年、批次与公司成立年。", + "boundary": "2026首页定向3项已登记。另已读2025年度档案入口与AI第二页,并完整登记一篇2025企业竞赛名单32项:复用1项、范围外29项、待核2项;每项均尝试原始链接,未知与不可读保留。单篇32项不等全部200参赛者、全部分页或两年全量;RSS/API普通请求受限。", + "nextCheck": "继续核本篇2项的成立、主体及AI主营,优先解决Billow批次与发现年份时序、Sponstar原始年份冲突;既有业务的法律沿革及不可读项仍留缺;沿普通2025档案和AI分页扩展其余来源台账,区分参赛年、批次与公司成立年。", "limitation": "需追溯原始披露,部分文章受访问限制", "accessRecheckedAt": "2026-10-30" }, diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 0596615..0329c85 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-30-battlefield-3", + "sourceVersion": "2026-10-30-battlefield-4", "asOf": "2026-10-30", "metric": "platform-mrr-usd", "sampleUnit": "product-or-business",