diff --git a/apps/docs/scripts/auth-cli.ts b/apps/docs/scripts/auth-cli.ts index 5358205..edc1a41 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, 1154); assert.equal(research.categories.length, 11); - assert.equal(research.evidence.length, 3274); + assert.equal(research.evidence.length, 3303); 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 175a2ea..50ddb07 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, 1154); - assert.equal(initial.evidence.length, 3274); + assert.equal(initial.evidence.length, 3303); 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"); @@ -406,7 +406,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, 18); + assert.equal(snapshot.candidateBatches!.flatMap((b) => b.records).filter((r) => r.status === "pending-year").length, 24); }); test("product pivots and founder histories do not become new company years or current revenue", () => { @@ -748,6 +748,31 @@ test("the final uncertain cohort separates delivery-start rentals, reservations assert.ok(!platformIncomeSample(snapshot, { windowDays: null }).points.some((p) => p.observation.id.startsWith("UNCLEAR8-"))); }); +test("founding conflicts preserve old product history without creating new companies or revenue", () => { + const snapshot = seed as ResearchSnapshot; + const batch = snapshot.candidateBatches!.find((b) => b.id === "YC-DATE-CONFLICT-1")!; + const original = coverageAudit.records.filter((r) => r.status === "date-conflict"); + assert.equal(batch.complete, false); + assert.equal(batch.records.length, 6); + assert.deepEqual(batch.records.map((r) => r.url), original.map((r) => r.source)); + assert.equal(new Set(batch.records.map((r) => r.url)).size, original.length); + for (const row of batch.records) { + assert.equal(row.status, "pending-year"); + assert.equal(row.companyId, undefined); + const evidence = snapshot.evidence.filter((e) => row.evidenceIds!.includes(e.id)); + assert.equal(evidence.length, row.evidenceIds!.length); + assert.ok(evidence.every((e) => e.companyId === null)); + assert.ok(evidence.some((e) => e.publishedAt?.startsWith("2025-")), "old product launch remains explicit"); + assert.ok(!snapshot.companies.some((c) => c.evidenceIds.some((eid) => row.evidenceIds!.includes(eid)))); + } + assert.match(batch.records.find((r) => r.name === "Layers")!.note, /未确认当前AI核心/); + assert.ok(!snapshot.observations.some((o) => o.evidence.startsWith("YEARCONFLICT1-"))); + const excluded = coverageAudit.records.filter((r) => r.status === "year-outside-or-missing"); + assert.equal(excluded.filter((r) => r.foundedYear === null).length, 54); + assert.equal(excluded.filter((r) => r.foundedYear !== null).length, 214); + assert.ok(excluded.filter((r) => r.foundedYear !== null).every((r) => ![2025, 2026].includes(r.foundedYear!))); +}); + test("Chinese discovery entries preserve unread articles and use separate primary evidence", () => { const snapshot = structuredClone(seed) as ResearchSnapshot; const batch = snapshot.candidateBatches!.find((b) => b.id === "JQ-2026-targeted-1")!; diff --git a/content/research/ai-companies.seed.json b/content/research/ai-companies.seed.json index 73e6cfc..9e4e9ff 100644 --- a/content/research/ai-companies.seed.json +++ b/content/research/ai-companies.seed.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ai-unclear-8", + "version": "2026-10-31-founding-conflicts-1", "asOf": "2026-10-31", "scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。", "limitations": [ @@ -78957,6 +78957,325 @@ "kind": "公司自述官方资料复核", "summary": "原第169—192项:10新增、1复用EveryApp、13继续AI主营待核;八批192项全池逐条有后续记录。", "limitation": "110项关联公司、82项继续AI主营待核;已读不是全部确认AI,也非所有来源/财务/技术研究完成,1428原发现审计不回写。" + }, + { + "id": "YEARCONFLICT1-26144-YC", + "companyId": null, + "title": "MSPilot:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/mspilot", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Fall 2025,团队自报3;Turn AI adoption into a recurring revenue line.", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-26144-LAUNCH1", + "companyId": null, + "title": "OpenBuilder编码产品发布", + "url": "https://www.ycombinator.com/launches/Ong-openbuilder-open-source-alternative-to-lovable", + "publishedAt": "2025-11-09", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI应用构建、VSCode体验及付费人工开发协助;开源完整发布在原文仍是coming soon。", + "limitation": "旧EasyCode 1.5M开发者安装为前产品经历;发布与现MSPilot法人连续、收入及成立年待核。" + }, + { + "id": "YEARCONFLICT1-30226-YC", + "companyId": null, + "title": "Elip AI:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/elip-ai", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Winter 2025,团队自报4;Cooking something sweet and salty! ", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-30226-LAUNCH1", + "companyId": null, + "title": "Tejas银行风险决策发布", + "url": "https://www.ycombinator.com/launches/MxA-tejas-ai-ai-powered-risk-decisioning-for-bfsi", + "publishedAt": "2025-03-04", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "银行规则/策略仿真与决策引擎,并非现Elip求职产品。", + "limitation": "Tartan旧事业8倍增长与30品牌非Elip收入/当前付费,发布不证明现法人成立。" + }, + { + "id": "YEARCONFLICT1-30671-YC", + "companyId": null, + "title": "Panoptive:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/panoptive", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Summer 2025,团队自报2;Agent systems for clinical development work", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-30671-LAUNCH1", + "companyId": null, + "title": "AgentHub测试环境发布", + "url": "https://www.ycombinator.com/launches/O6a-agenthub-the-staging-environment-for-your-ai-agents", + "publishedAt": "2025-08-02", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI Agent staging、轨迹和LLM/人工/规则评分;当前Panoptive转向临床运营。", + "limitation": "2025产品存在可核,但名称映射不单独证明现公司法人或精确成立年;功能/效果自述未实测。" + }, + { + "id": "YEARCONFLICT1-30975-YC", + "companyId": null, + "title": "MadeThis:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/madethis", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Fall 2025,团队自报3;The autonomous business platform", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-30975-LAUNCH1", + "companyId": null, + "title": "MadeThis业务平台发布", + "url": "https://www.ycombinator.com/launches/SBs-madethis-the-platform-for-self-driving-businesses", + "publishedAt": "2026-07-30", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "2026-07-30称100天启动2万业务及平台上产生销售金额。", + "limitation": "业务/销售为客户采用及平台经手口径,未说明平台净收费;不能当自身ARR或证明新法人2026成立。" + }, + { + "id": "YEARCONFLICT1-30975-LAUNCH2", + "companyId": null, + "title": "Castari运行时2026发布", + "url": "https://www.ycombinator.com/launches/PTN-castari-the-runtime-for-agents-that-need-a-computer", + "publishedAt": "2026-02-17", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "Agent沙盒计算、运行编排及工具环境公开beta。", + "limitation": "旧消费者产品用户及RunPod收入不迁当前公司,2026新版发布不消除2025沿革。" + }, + { + "id": "YEARCONFLICT1-30975-LAUNCH3", + "companyId": null, + "title": "Castari运行时2025发布", + "url": "https://www.ycombinator.com/launches/OrV-castari-vercel-for-ai-agents", + "publishedAt": "2025-11-17", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "2025-11-17以Claude Agent SDK为主的安全沙盒托管及有限试点,其他框架尚为计划。", + "limitation": "旧RunPod收入/消费者产品2M采用不作Castari收入;公开仓库链接未在本批读取或运行,不升级公开技术证据。" + }, + { + "id": "YEARCONFLICT1-30983-YC", + "companyId": null, + "title": "Layers:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/layers", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Fall 2025,团队自报2;Improve your appearance by measuring, understanding, and tracking…", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-30983-LAUNCH1", + "companyId": null, + "title": "Telemetron硬件支持发布", + "url": "https://www.ycombinator.com/launches/OlP-telemetron-the-support-platform-that-understands-hardware", + "publishedAt": "2025-11-05", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI支持Agent联动硬件遥测、退换/保修与服务工作流。", + "limitation": "2025硬件支持产品不能证明现健康服务AI核心或现法人年份;创始人Starlink旧业绩不迁移。" + }, + { + "id": "YEARCONFLICT1-30999-YC", + "companyId": null, + "title": "Antigen:现行YC成立年与旧批次", + "url": "https://www.ycombinator.com/companies/antigen", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现行目录列2026成立、Fall 2025,团队自报5;Continuous offensive security for the enterprise.", + "limitation": "批次不等成立年;同页旧产品/创始人经历不自动认定同法人;团队数字未独立确认。" + }, + { + "id": "YEARCONFLICT1-30999-LAUNCH1", + "companyId": null, + "title": "Zag PR审查产品发布", + "url": "https://www.ycombinator.com/launches/Ob1-zag-ai-review-agents-for-every-pr", + "publishedAt": "2025-10-10", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI审查Agent与Apple CI计算,并有工程师支持。", + "limitation": "0.015美元符号/分钟是旧计算报价;Google功能收入、集体漏洞奖励及创始人旧事业非Antigen收入/ARR。" + }, + { + "id": "YEARCONFLICT1-26144-HOME", + "companyId": null, + "title": "MSPilot:现行业务", + "url": "https://www.mspilot.io/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "MSP跨租户Agent构建、治理及渠道转售,按客户端模型/标记加价。", + "limitation": "示例5500月销售/2500利润及500平台费是客户场景计算器,不是MSPilot真实账单/收入,未取合同或独立财务。" + }, + { + "id": "YEARCONFLICT1-30226-HOME", + "companyId": null, + "title": "Elip AI:现行业务", + "url": "https://tryelip.ai/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI求职Agent与简历匹配,求职者免费,雇主招聘成功后付费。", + "limitation": "与旧银行Tejas产品任务不同;收费机制不是实际回款/ARR,地址不当注册日期。" + }, + { + "id": "YEARCONFLICT1-30671-HOME", + "companyId": null, + "title": "Panoptive:现行业务", + "url": "https://panoptive.com/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "临床开发数据管理、运营监督及QA Agent,共享证据和人工审查。", + "limitation": "页面示例为合成数据,不当实际客户试验/独立临床验证;没有补足新旧主体及成立年。" + }, + { + "id": "YEARCONFLICT1-30975-HOME", + "companyId": null, + "title": "MadeThis:现行业务", + "url": "https://www.madethis.com/about", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "自述由Castar Ventures, Inc.建设业务AI平台,连接创建、支付、营销及运营。", + "limitation": "当前运营者自述不等登记核验;旧Castari、现品牌和旧RunPod业绩不据同创始人合并收入或推成立年。" + }, + { + "id": "YEARCONFLICT1-30983-HOME", + "companyId": null, + "title": "Layers:现行业务", + "url": "https://www.layers.bio/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "60分钟线下健康/外观测量,150+指标,年度/季度服务;旧金山开放,纽约/洛杉矶待开。", + "limitation": "当前AI核心仅用户评价不足以确认;测量/临床效果/实际会员付费未核,旧Telemetron业务单列。" + }, + { + "id": "YEARCONFLICT1-30999-HOME", + "companyId": null, + "title": "Antigen:现行业务", + "url": "https://antigen.sh/", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "AI持续安全测试/修复,报告均由研究员审阅,提供托管或客户环境部署。", + "limitation": "人工投入和软件收费待拆;Acme演示不是独立客户/效果,未运行测试,不把网站主张当技术验证。" + }, + { + "id": "YEARCONFLICT1-26144-ABOUT", + "companyId": null, + "title": "MSPilot团队及前事业范围", + "url": "https://www.mspilot.io/about", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "现团队介绍将编码工具、Baseten及家族MSP经历并列。", + "limitation": "1.5M旧安装、前雇主13B估值、家族30年业务不是现公司成立/收入证据,早期设计伙伴不等当前付费。" + }, + { + "id": "YEARCONFLICT1-30226-ABOUT", + "companyId": null, + "title": "Elip现运营者与收费机制", + "url": "https://tryelip.ai/about", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "自述产品属Freshview Innovations, Inc.,Delaware公司;雇主按录用付费。", + "limitation": "未给公司登记年/编号或与Tejas法律关系,不把Inc/地址或免费求职端当注册年/零营收。" + }, + { + "id": "YEARCONFLICT1-30226-TERMS", + "companyId": null, + "title": "Elip条款日期与主体", + "url": "https://tryelip.ai/terms", + "publishedAt": "2026-09-28", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "条款2026-07-01生效、2026-09-28更新;运营者Freshview Innovations, Inc.。", + "limitation": "生效/更新不是公司注册日;当前求职服务与旧银行产品关系仍待核。" + }, + { + "id": "YEARCONFLICT1-30671-COMPANY", + "companyId": null, + "title": "Panoptive当前公司与临床工作流", + "url": "https://panoptive.com/company", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "临床Agent流程、可检查证据和人工复核;页面列4个招聘角色。", + "limitation": "招聘4角色不是实际员工数或付款客户;页面没有确证注册年/AgentHub法律关系,未作临床效果判断。" + }, + { + "id": "YEARCONFLICT1-30975-TERMS", + "companyId": null, + "title": "MadeThis运营者及客户资金边界", + "url": "https://www.madethis.com/terms", + "publishedAt": "2026-09-12", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "运营者Castar Ventures, Inc.;条款明确客户销售款及第三方广告资金不是平台订阅或用量费用。", + "limitation": "2026-09-12更新及SMS条款日期不是注册日;订阅/用量/加购、客户销售及广告预算分别核,法律沿革未证。" + }, + { + "id": "YEARCONFLICT1-30975-PRICE", + "companyId": null, + "title": "MadeThis订阅与资源额度", + "url": "https://www.madethis.com/pricing", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "原文$49/$79/$199月费含5000/10000/30000月额度,企业方案5000/月起;另设模型成本日上限。", + "limitation": "报价不等实际MRR;月额度不滚存、top-up不失效,外部模型/人工/广告成本需拆,币种不从$推定。" + }, + { + "id": "YEARCONFLICT1-30983-TERMS", + "companyId": null, + "title": "Layers服务条款日期与限制", + "url": "https://www.layers.bio/terms", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "条款标2026年7月更新,提供测量及解释;未列可验证注册日。", + "limitation": "条款日不作成立日,测量不等独立临床效果或AI实现,现主体与Telemetron关系待核。" + }, + { + "id": "YEARCONFLICT1-30999-TERMS", + "companyId": null, + "title": "Antigen现运营者", + "url": "https://antigen.sh/terms", + "publishedAt": "2026-08-03", + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "2026-08-03条款称Claybird Inc. d/b/a Antigen。", + "limitation": "运营者名称非独立注册证据;条款更新不证明2026新创,Zag/旧SaaS/雇主收入不归现公司。" + }, + { + "id": "YEARCONFLICT1-INDEX-POOL", + "companyId": null, + "title": "原成立年冲突6项补核", + "url": "https://www.ycombinator.com/companies", + "publishedAt": null, + "accessedAt": "2026-10-31", + "kind": "公司自述官方资料复核", + "summary": "6项当前2026成立/2025批次均有2025旧品牌发布;按现行业务初分类,全部保留成立年待核。", + "limitation": "未凭旧发布强改2025、未凭条款日期认定2026;法律连续/注册日、Layers现AI核心和全部财务仍有缺项。" } ], "reviews": [ @@ -85095,6 +85414,56 @@ "UNCLEAR7-INDEX" ], "handling": "名单已读范围完整,但82缺项尚未解决;268年范围外/缺失、6成立冲突及其他来源边界仍继续,不能称全部研究完成,原1428/928发现计数不改。" + }, + { + "id": "YEARCONFLICT1-R-DATES", + "type": "旧产品、品牌及运营主体不替代注册证据", + "company": "YC成立年冲突6项及原年份快照", + "scope": "dataset", + "summary": "MSPilot/OpenBuilder、Elip/Tejas、Panoptive/AgentHub、MadeThis/Castari、Layers/Telemetron、Antigen/Zag均保留2025旧发布与2026目录字段。", + "evidenceIds": [ + "YEARCONFLICT1-INDEX-POOL", + "YEARCONFLICT1-26144-YC", + "YEARCONFLICT1-26144-LAUNCH1", + "YEARCONFLICT1-30226-YC", + "YEARCONFLICT1-30226-LAUNCH1", + "YEARCONFLICT1-30671-YC", + "YEARCONFLICT1-30671-LAUNCH1", + "YEARCONFLICT1-30975-YC", + "YEARCONFLICT1-30975-LAUNCH1", + "YEARCONFLICT1-30975-LAUNCH2", + "YEARCONFLICT1-30975-LAUNCH3", + "YEARCONFLICT1-30983-YC", + "YEARCONFLICT1-30983-LAUNCH1", + "YEARCONFLICT1-30999-YC", + "YEARCONFLICT1-30999-LAUNCH1" + ], + "handling": "6项均pending-year无主公司ID;官网条款/运营者及创始人链不足以认定同法人或新设公司,不按批次/版权/条款日期改年。" + }, + { + "id": "YEARCONFLICT1-R-REVENUE", + "type": "客户销售、情景计算器及前事业与平台收入分开", + "company": "YC成立年冲突6项及原年份快照", + "scope": "dataset", + "summary": "MSPilot客户利润模拟、MadeThis客户销售与广告资金、RunPod/Google等前雇主收入及旧事业MRR不当当前公司收入。", + "evidenceIds": [ + "YEARCONFLICT1-26144-HOME", + "YEARCONFLICT1-30975-TERMS", + "YEARCONFLICT1-30975-PRICE", + "YEARCONFLICT1-30999-LAUNCH1" + ], + "handling": "无新增观测或可比MRR;Elip按录用、Layers线下测量、Antigen研究员复核与软件订阅需拆,成立与主体未明前不补主公司数。" + }, + { + "id": "YEARCONFLICT1-R-YEAR-COUNTS", + "type": "原年份范围外和缺失分开统计", + "company": "YC成立年冲突6项及原年份快照", + "scope": "dataset", + "summary": "原268项中214项目录列2022—2024(2022年4、2023年30、2024年180),54项无成立年份;另6项日期冲突均新增待核记录。", + "evidenceIds": [ + "YEARCONFLICT1-INDEX-POOL" + ], + "handling": "计数直接来自原发现快照,不是214家独立注册核验或本轮重新读完;54缺年、6冲突与82 AI待核分别推进,原快照/初筛不回写。" } ], "coverage": { @@ -90562,6 +90931,116 @@ "note": "原ai-unclear,YC自报2026成立。可复用无人拦截航空器;自主识别/无人飞行未明确学习模型任务,官网仅航天防务简介。创始人军旅经历与成本宣传不当现产品独立性能、交付或收入。 AI主营继续待核,不强行入公司表,也非永久排除。" } ] + }, + { + "id": "YC-DATE-CONFLICT-1", + "sourceId": "S01", + "url": "https://www.ycombinator.com/companies", + "accessedAt": "2026-10-31", + "scope": "原1428条发现中6项成立年与批次冲突全池补核;6项都已有可回查旧产品发布及现官网,但注册/新旧主体连续未证,全部pending-year,不新增公司或收入。Layers当前AI核心另待核。", + "complete": false, + "records": [ + { + "id": "YC-YEAR1-26144", + "name": "MSPilot", + "url": "https://www.ycombinator.com/companies/mspilot", + "categoryId": "C03", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前MSP多租户Agent部署/治理及转售平台,2025-11-09旧发布为OpenBuilder编码工具。YC列2026成立、Fall2025;旧EasyCode安装及创始团队经历不能补新主体成立或当前规模。官网利润计算器是MSP客户情景,非自身MRR;注册/品牌与主体沿革待核。", + "evidenceIds": [ + "YEARCONFLICT1-26144-YC", + "YEARCONFLICT1-26144-LAUNCH1", + "YEARCONFLICT1-26144-HOME", + "YEARCONFLICT1-26144-ABOUT" + ] + }, + { + "id": "YC-YEAR1-30226", + "name": "Elip AI", + "url": "https://www.ycombinator.com/companies/elip-ai", + "categoryId": "C06", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前WhatsApp求职匹配Agent,求职者免费、雇主录用后付费;2025-03-04旧发布为Tejas银行风控。YC列2026成立、Winter2025;官网运营者Freshview Innovations, Inc.,条款生效/更新不是注册日,品牌与主体连续待核,不迁移Tartan旧增长或客户数。", + "evidenceIds": [ + "YEARCONFLICT1-30226-YC", + "YEARCONFLICT1-30226-LAUNCH1", + "YEARCONFLICT1-30226-HOME", + "YEARCONFLICT1-30226-ABOUT", + "YEARCONFLICT1-30226-TERMS" + ] + }, + { + "id": "YC-YEAR1-30671", + "name": "Panoptive", + "url": "https://www.ycombinator.com/companies/panoptive", + "categoryId": "C07", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前临床开发数据/运营/质量Agent及人工审查,2025-08-02旧发布为AgentHub通用Agent测试环境。YC列2026成立、Summer2025;同页面/创始人链只支持产品沿革线索,不能确认同法人或新成立年;官网示例为合成数据,招聘数不当实际团队。", + "evidenceIds": [ + "YEARCONFLICT1-30671-YC", + "YEARCONFLICT1-30671-LAUNCH1", + "YEARCONFLICT1-30671-HOME", + "YEARCONFLICT1-30671-COMPANY" + ] + }, + { + "id": "YC-YEAR1-30975", + "name": "MadeThis", + "url": "https://www.ycombinator.com/companies/madethis", + "categoryId": "C05", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前自营业务AI团队/网站支付营销平台;2025-11-17及2026-02-17旧发布Castari Agent运行时。YC列2026成立、Fall2025,官网运营者Castar Ventures, Inc.;2026条款日期不作注册日。客户销售款、广告预算、平台收费及RunPod旧收入分开,法律连续待核。", + "evidenceIds": [ + "YEARCONFLICT1-30975-YC", + "YEARCONFLICT1-30975-LAUNCH1", + "YEARCONFLICT1-30975-LAUNCH2", + "YEARCONFLICT1-30975-LAUNCH3", + "YEARCONFLICT1-30975-HOME", + "YEARCONFLICT1-30975-TERMS", + "YEARCONFLICT1-30975-PRICE" + ] + }, + { + "id": "YC-YEAR1-30983", + "name": "Layers", + "url": "https://www.ycombinator.com/companies/layers", + "categoryId": "C09", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前线下皮肤/头发/身体/代谢测量及年度/季度服务,2025-11-05旧发布Telemetron硬件AI支持。YC列2026成立、Fall2025;仅现行用户评价提及AI,未确认当前AI核心任务。新旧业务/主体、注册和收费履约均待核;测量项数及旧Starlink自动化不当当前收入。", + "evidenceIds": [ + "YEARCONFLICT1-30983-YC", + "YEARCONFLICT1-30983-LAUNCH1", + "YEARCONFLICT1-30983-HOME", + "YEARCONFLICT1-30983-TERMS" + ] + }, + { + "id": "YC-YEAR1-30999", + "name": "Antigen", + "url": "https://www.ycombinator.com/companies/antigen", + "categoryId": "C04", + "kind": "company", + "profileStatus": "readable", + "status": "pending-year", + "note": "当前AI持续安全测试、补丁和研究员人工复核服务,2025-10-10旧发布Zag PR审查/Apple CI。YC列2026成立、Fall2025,现行条款运营者Claybird Inc. d/b/a Antigen;条款日期不证明注册。旧雇主收入、创始人旧SaaS MRR及漏洞奖励不迁当前收入;演示Acme不是实际客户证据。", + "evidenceIds": [ + "YEARCONFLICT1-30999-YC", + "YEARCONFLICT1-30999-LAUNCH1", + "YEARCONFLICT1-30999-HOME", + "YEARCONFLICT1-30999-TERMS" + ] + } + ] } ], "directoryRechecks": [ diff --git a/content/research/ai-companies.sources.json b/content/research/ai-companies.sources.json index c4f8373..75198e9 100644 --- a/content/research/ai-companies.sources.json +++ b/content/research/ai-companies.sources.json @@ -1,5 +1,5 @@ { - "version": "2026-10-31-ai-unclear-8", + "version": "2026-10-31-founding-conflicts-1", "scopeConfirmedAt": "2026-10-30", "acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。", "provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。", @@ -16,7 +16,7 @@ "initialAccess": "官网目录可访问", "boundary": "已读取八个2025—2026批次镜像候选池1428条,再核YC官方页面;不声称覆盖全部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模型实现缺项保留。" + "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核心待核,客户销售/利润计算器和前事业收入排除。" }, { "id": "S02", diff --git a/content/research/ai-income-analysis.json b/content/research/ai-income-analysis.json index 0b54202..bd7f520 100644 --- a/content/research/ai-income-analysis.json +++ b/content/research/ai-income-analysis.json @@ -1,5 +1,5 @@ { - "sourceVersion": "2026-10-31-ai-unclear-8", + "sourceVersion": "2026-10-31-founding-conflicts-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 5b36e82..9c5683b 100644 --- a/scripts/audit-ai-research.py +++ b/scripts/audit-ai-research.py @@ -146,6 +146,24 @@ def uncertain_ai_followups(): '读完名单只证明每项有可回查的处理记录,不证明待核项均为AI公司,也不证明法律主体、收入或技术效果已独立验证。原始发现审计保持不变,成立年范围外/缺失、成立冲突及其他来源的缺项仍单列。', ''] +def founding_year_followups(): + original = {row['source']: row for row in AUDIT['records'] if row['status'] == 'date-conflict'} + rows = [row for batch in DATA.get('candidateBatches', []) + if batch['id'].startswith('YC-DATE-CONFLICT-') for row in batch['records']] + urls = [row['url'] for row in rows] + assert len(set(urls)) == len(urls), 'Duplicate founding-conflict follow-up URL' + assert set(urls) <= set(original), 'Unknown founding-conflict follow-up URL' + evidence = {row['id']: row for row in DATA['evidence']} + for row in rows: + assert row['status'] == 'pending-year' and not row.get('companyId') + assert row.get('evidenceIds') and all(eid in evidence for eid in row['evidenceIds']) + assert all(evidence[eid]['companyId'] is None for eid in row['evidenceIds']) + unread = len(original) - len(rows) + return ['', '## 原成立年冲突名单的后续覆盖', '', + f"原名单{len(original)}项,已有后续记录{len(rows)}项,均保留成立年待核,{unread}项尚无本系列后续记录。当前业务初分类见候选表,不计入主公司表及收入统计。", '', + '2025旧品牌发布可证明当时已有产品材料;当前目录的2026字段、批次、条款日期和运营者名称不能单独证明法律主体成立或新旧主体连续。未据此强改成立年。Layers当前AI核心仍另待核。', ''] + + def directory_rechecks(): rows = DATA.get('directoryRechecks', []) if not rows: @@ -192,6 +210,11 @@ def render(): 'year-outside-or-missing': cov['otherOrMissingYear'], 'ai-unclear': cov['unclearAI'], 'date-conflict': cov['dateConflicts']} assert len({x['ycId'] for x in AUDIT['records']}) == len(AUDIT['records']) + excluded_years = Counter(x['foundedYear'] for x in AUDIT['records'] if x['status'] == 'year-outside-or-missing') + outside_years = {year: count for year, count in excluded_years.items() if year is not None} + assert all(year not in (2025, 2026) for year in outside_years) + assert sum(outside_years.values()) + excluded_years[None] == cov['otherOrMissingYear'] + year_detail = '、'.join(f'{year}年{count}项' for year, count in sorted(outside_years.items())) lines = ['# AI 公司资料覆盖与缺项', '', f"截至 {DATA['asOf']},研究表含{len(companies):,}条公司或产品记录。YC候选池有逐条读取审计;其他来源为定向补充。清单尚不能作为全球AI公司普查,也不能将收入未知解释为零。", '', '验收范围已于2026-10-30确认为:以确认的公开来源清单为边界,逐条核对并标明缺项。下方区分已逐条审计的候选池与定向补充来源;已使用某来源不代表该来源已被完整覆盖。', '', @@ -203,7 +226,8 @@ def render(): f"| 初筛匹配 | {cov['matchingProfiles']:,} | 成立年及AI相关描述通过初筛,尚非逐家商业验证 |", f"| 与原表重合 | {cov['existingProfiles']} | URL匹配,未再次新增 |", f"| 新增目录记录 | {cov['newProfiles']:,} | 原始入表来源,后续深化不改变发现计数 |", - f"| 年份不符或缺失 | {cov['otherOrMissingYear']} | 此轮不作为成立年匹配项 |", + f"| 原目录列为范围外年份 | {sum(outside_years.values())} | {year_detail};原快照自述,不是独立登记核验 |", + f"| 原目录未给成立年 | {excluded_years[None]} | 与已列范围外年份分开,仍待补证 |", f"| AI业务待确认 | {cov['unclearAI']} | 不强行把背景关键词当主营 |", f"| 成立年与批次冲突 | {cov['dateConflicts']} | 另保留核查记录 |", '', f"全表由{depth}条目录基础项和{len(companies)-depth}条个案或平台记录组成。候选池已匹配项之外另有{len(companies)-cov['matchingProfiles']}条记录,包含其他来源及发布/转型对照;其中已有{promoted}条原目录记录深化为个案,仍保留目录来源。两种统计边界不同。候选池数字只是该镜像快照的覆盖,Bud等后续定向补充不回填为原候选池已覆盖。", '', @@ -243,6 +267,7 @@ def render(): others = [e for e in DATA['evidence'] if urlsplit(e['url']).netloc not in included] lines.append(f"| 其他官网、评测及公开资料 | {len(others)} | {len({e['url'] for e in others})} | 按每条来源限制理解,不能统一当作独立证据 |") lines += uncertain_ai_followups() + lines += founding_year_followups() lines += directory_rechecks() lines += source_register() lines += context_methods()