Compare commits

..

1 Commits

13 changed files with 90 additions and 808 deletions
-12
View File
@@ -179,18 +179,6 @@ python3 scripts/documents-client.py save "$api_work_dir/document.json"
客户端只自动重试一次临时网络或 `502/503/504` 错误,保持正文和请求 ID 不变;`409` 等业务错误不会自动覆盖。它不跟随 HTTP 重定向,避免将 Bearer 凭据转发到其他地址。正文和 Key 继续保存在数据库或私有文件中,不因使用 API 而进入 Git。
### 上传正文图片
使用前述 HTTPS 或 SSH 隧道配置以及 `read-write` 文档 API Key:
```sh
python3 scripts/documents-client.py upload-image ./diagram.png
```
客户端向 `POST /api/documents/images` 发送原始图片字节,`Content-Type` 为 `image/png`、`image/jpeg` 或 `image/webp`。服务端接受最大 8 MiB、2500 万像素的静态图,转换为最大 2000 × 4000 像素、2 MiB 的 WebP,并按处理后内容去重。
把响应中的 `url` 放入 Markdown,例如 `![渲染流程图](/api/documents/images/<id>)`,然后通过章节 API 保存正文。登录读者和文档 API Key 均可读取图片。图片存入现有持久化 SQLite,同步纳入整库备份。仅导出正文的 `docs export` 保留图片引用,迁移时需使用包含图片的整库备份。
## 研究数据与检查
研究工作台提供公司筛选、经营指标、原始证据、收费与交付模式、技术材料及核查记录。它区分公司披露、支付平台指标、第三方估算、融资和客户收益;未知收入不填零,材料可访问也不代表性能或商业效果已经验证。研究范围、样本限制和个案结论以工作台记录为准。
+2 -2
View File
@@ -20,8 +20,7 @@
"react": "19.3.1",
"react-dom": "19.3.1",
"react-markdown": "10.1.0",
"remark-gfm": "4.0.1",
"sharp": "0.35.5"
"remark-gfm": "4.0.1"
},
"devDependencies": {
"@tailwindcss/postcss": "4.3.3",
@@ -34,6 +33,7 @@
"eslint": "^9.39.5",
"eslint-config-next": "16.4.3",
"postcss": "8.5.31",
"sharp": "0.35.5",
"tailwindcss": "4.3.3",
"typescript": "~5.9.3"
}
+2 -2
View File
@@ -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, 1312);
assert.equal(research.companies.length, 1307);
assert.equal(research.categories.length, 11);
assert.equal(research.evidence.length, 5354);
assert.equal(research.evidence.length, 5331);
assert.equal(research.observations.length, 495);
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 });
-39
View File
@@ -1,39 +0,0 @@
import { createHash } from "node:crypto";
import { openSiteDatabase } from "./site-database";
function openImages() {
const db = openSiteDatabase();
try {
db.exec(`CREATE TABLE IF NOT EXISTS document_images (
id TEXT PRIMARY KEY,
bytes BLOB NOT NULL
)`);
return db;
} catch (error) {
db.close();
throw error;
}
}
export function saveDocumentImage(bytes: Buffer) {
const id = createHash("sha256").update(bytes).digest("hex");
const db = openImages();
try {
db.prepare("INSERT INTO document_images (id, bytes) VALUES (?, ?) ON CONFLICT(id) DO NOTHING").run(id, bytes);
return id;
} finally {
db.close();
}
}
export function readDocumentImage(id: string) {
const db = openImages();
try {
const row = db.prepare("SELECT bytes FROM document_images WHERE id = ?").get(id) as
| { bytes: Uint8Array }
| undefined;
return row ? Buffer.from(row.bytes) : undefined;
} finally {
db.close();
}
}
@@ -1,24 +0,0 @@
import type { NextApiRequest, NextApiResponse } from "next";
import { documentApiError } from "@/lib/documents-api";
import { readDocumentImage } from "@/lib/document-images";
// The site proxy accepts a logged-in reader or a document API key on this route.
export default function handler(request: NextApiRequest, response: NextApiResponse) {
try {
response.setHeader("Cache-Control", "private, no-store");
response.setHeader("X-Content-Type-Options", "nosniff");
if (request.method !== "GET" && request.method !== "HEAD") {
response.setHeader("Allow", "GET, HEAD");
return response.status(405).end();
}
const id = request.query.id;
if (typeof id !== "string" || !/^[a-f0-9]{64}$/.test(id)) return response.status(404).end();
const bytes = readDocumentImage(id);
if (!bytes) return response.status(404).end();
response.setHeader("Content-Type", "image/webp");
response.setHeader("Content-Length", bytes.length);
return request.method === "HEAD" ? response.status(200).end() : response.status(200).send(bytes);
} catch (error) {
return documentApiError(response, error);
}
}
@@ -1,64 +0,0 @@
import type { NextApiRequest, NextApiResponse } from "next";
import sharp from "sharp";
import { authorizeDocuments, documentApiError } from "@/lib/documents-api";
import { saveDocumentImage } from "@/lib/document-images";
const maxUploadBytes = 8 * 1024 * 1024;
const maxStoredBytes = 2 * 1024 * 1024;
const imageTypes = new Set(["image/png", "image/jpeg", "image/webp"]);
const imageFormats = new Set(["png", "jpeg", "webp"]);
export const config = { api: { bodyParser: false } };
export default async function handler(request: NextApiRequest, response: NextApiResponse) {
try {
if (request.method !== "POST") {
response.setHeader("Allow", "POST");
return response.status(405).end();
}
if (!authorizeDocuments(request, response, true)) return;
const type = request.headers["content-type"]?.split(";")[0].trim().toLowerCase();
if (!type || !imageTypes.has(type)) {
return response.status(415).json({ error: "请上传 PNG、JPEG 或 WebP 图片" });
}
if (Number(request.headers["content-length"]) > maxUploadBytes) {
return response.status(413).json({ error: "图片上传上限为 8 MiB" });
}
const chunks: Buffer[] = [];
let length = 0;
for await (const chunk of request.iterator({ destroyOnReturn: false })) {
const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
length += bytes.length;
if (length > maxUploadBytes) {
return response.status(413).json({ error: "图片上传上限为 8 MiB" });
}
chunks.push(bytes);
}
let encoded: Buffer;
try {
const input = sharp(Buffer.concat(chunks), { limitInputPixels: 25_000_000 });
const { format, pages } = await input.metadata();
if (!format || !imageFormats.has(format) || type !== `image/${format}` || (pages ?? 1) > 1) {
return response.status(415).json({ error: "图片格式需与声明一致,且只支持静态图片" });
}
encoded = await input.rotate()
.resize({ width: 2000, height: 4000, fit: "inside", withoutEnlargement: true })
.webp({ quality: 85 })
.toBuffer();
} catch {
return response.status(400).json({ error: "无法解码图片,或像素数量超过限制" });
}
if (encoded.length > maxStoredBytes) {
return response.status(413).json({ error: "处理后的图片超过 2 MiB,请缩小后重试" });
}
const id = saveDocumentImage(encoded);
const url = `/api/documents/images/${id}`;
return response.status(200).json({ id, url, contentType: "image/webp", size: encoded.length });
} catch (error) {
return documentApiError(response, error);
}
}
+3 -7
View File
@@ -23,10 +23,6 @@ import { collectionEntries, collectionLabel } from "@/lib/collections";
import { Icon } from "@/components/Icon";
import { headingsFor } from "@/lib/navigation";
function isZoomableFigure(source: string) {
return source.startsWith("/figures/endor-") || /^\/api\/documents\/images\/[a-f0-9]{64}$/.test(source);
}
type Props = { doc: Doc; docs: DocLink[] };
const AICompanyResearch = dynamic(() => import("@/components/AICompanyResearch"));
export const getServerSideProps: GetServerSideProps<Props> = async ({ params, res, resolvedUrl }) => {
@@ -124,14 +120,14 @@ export default function DocPage({
const slides = node?.children.flatMap((child) =>
child.type === "element" && child.tagName === "img" &&
typeof child.properties.src === "string" &&
isZoomableFigure(child.properties.src)
child.properties.src.startsWith("/figures/endor-")
? [{ source: child.properties.src, alt: String(child.properties.alt ?? "") }]
: [],
) ?? [];
const onlyImages = node?.children.every((child) =>
(child.type === "element" && child.tagName === "img" &&
typeof child.properties.src === "string" &&
isZoomableFigure(child.properties.src)) ||
child.properties.src.startsWith("/figures/endor-")) ||
(child.type === "text" && child.value.trim() === ""),
);
if (slides.length > 1 && onlyImages) return <FigureGallery slides={slides} />;
@@ -145,7 +141,7 @@ export default function DocPage({
);
},
img: ({ src, alt }) =>
typeof src === "string" && isZoomableFigure(src) ? (
typeof src === "string" && src.startsWith("/figures/endor-") ? (
<ArchitectureFigure source={src} alt={alt ?? "Endor 架构图"} />
) : (
// eslint-disable-next-line @next/next/no-img-element
+11 -11
View File
@@ -124,11 +124,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, 1312);
assert.equal(initial.evidence.length, 5354);
assert.equal(initial.companies.length, 1307);
assert.equal(initial.evidence.length, 5331);
assert.equal(initial.observations.length, 495);
const businessReviews = initial.reviews.filter((review) => review.type === businessModelReviewType);
assert.equal(businessReviews.length, 26);
assert.equal(businessReviews.length, 25);
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");
@@ -170,9 +170,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, 299);
assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 159);
assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 65);
assert.equal(snapshot.reviews.filter((r) => r.scope === "companies").length, 297);
assert.equal(snapshot.reviews.filter((r) => r.scope === "dataset").length, 158);
assert.equal(snapshot.reviews.filter((r) => r.scope === "excluded-candidate").length, 63);
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")!), []);
@@ -191,11 +191,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), 1312);
assert.equal(summary.reduce((n, c) => n + c.count, 0), 1307);
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), 1228);
assert.equal(summary.reduce((n, c) => n + c.unknown, 0), 1223);
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 === "公司整体"));
@@ -230,7 +230,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, 303);
assert.equal(snapshot.companies.filter((c) => c.technicalReview).length, 298);
assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "public-artifact").length, 29);
assert.equal(snapshot.companies.filter((c) => c.technicalReview?.level === "independent-test").length, 1);
assert.equal(snapshot.companies.find((c) => c.id === "AI051")?.revenueStatus, "unknown");
@@ -646,10 +646,10 @@ test("public Speedrun cohort rosters preserve the finite boundary without invent
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, 5);
assert.equal(newlyRegistered.filter((row) => row.status === "linked").length, 68);
assert.equal(newlyRegistered.filter((row) => row.status === "linked").length, 63);
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, 24,
assert.equal(newlyRegistered.filter((row) => row.status === "pending-ai").length, 29,
"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) =>
+58 -619
View File
@@ -1,5 +1,5 @@
{
"version": "2026-11-01-source-closeout-1",
"version": "2026-11-01-sr-learning-health-1",
"asOf": "2026-11-01",
"scope": "全球公开资料研究:保留首批个案,并扩展核查2025—2026八个YC批次候选池;成立年份以官方公司页面字段为依据。",
"limitations": [
@@ -41985,186 +41985,6 @@
"SRLEARN1-SUN-PRIVACY"
]
}
},
{
"id": "AI216",
"name": "doublespeed",
"url": "https://doublespeed.ai",
"channel": "S14",
"cat": "C06",
"year": 2025,
"team": 11,
"location": "San Francisco, California, United States of America(投资方资料)",
"business": "AI社交内容和托管账号运营,含人工内容处理。",
"buyer": "品牌/增长与内容团队",
"delivery": "官网演示/审计预约,AI生成和人工微调自述",
"price": "未见公开金额/实际合同",
"businessModel": "营销交付软件/服务,模型/内容、人员和账号/平台维护及获客成本待核",
"entityBasis": "官网品牌自述,精确法人/注册与采购合同未核",
"stage": "官网演示/审计预约,AI生成和人工微调自述",
"cohort": "投资方自报2025成立,独立注册/品牌起点待核",
"teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知",
"sourceType": "公开投资方档案及当前官网",
"notes": "当前任务/买方可分类但AI方法/能力、注册、真实合同/净费、付费与留存未独立核;标价/市场机会/候补/创作者收入不作ARR。",
"evidenceIds": [
"SRPRO1-P-SR005R-C19",
"SRCLOSE1-SR005R-C19"
],
"revenueStatus": "unknown",
"classificationBasis": "营销交付C06、个人互动C09、可玩内容创作C08、建设/农业专门任务C07,软件/人协同/采购渠道和计费分母分开,不按客户行业或投资标签当技术实测。",
"technicalReview": {
"level": "description",
"reviewedAt": "2026-11-01",
"summary": "仅官网/投资方当前任务核对,未运行产品/账号、投稿/生成或连接真实数据;声明/演示不当独立测试、已付款或法律/监管审查。",
"evidenceIds": [
"SRPRO1-P-SR005R-C19",
"SRCLOSE1-SR005R-C19"
]
}
},
{
"id": "AI217",
"name": "SoulLink",
"url": "https://soullink.io",
"channel": "S14",
"cat": "C09",
"year": 2025,
"team": 6,
"location": "Los Angeles, California, United States of America(投资方资料)",
"business": "3D虚拟AI陪伴与交互记忆应用。",
"buyer": "个人陪伴/互动用户",
"delivery": "beta和移动端入口,官网标Sept2026上线,未运行",
"price": "未见公开收费金额或付费/留存底表",
"businessModel": "个人互动应用,3D渲染、模型/语音、记忆/存储与内容支持成本待核",
"entityBasis": "SoulLink/4D品牌与官网对应,精确法人及独立注册/合同未核",
"stage": "beta和移动端入口,官网标Sept2026上线,未运行",
"cohort": "投资方自报2025成立,独立注册/品牌起点待核",
"teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知",
"sourceType": "公开投资方档案及当前官网",
"notes": "当前任务/买方可分类但AI方法/能力、注册、真实合同/净费、付费与留存未独立核;标价/市场机会/候补/创作者收入不作ARR。",
"evidenceIds": [
"SRPRO1-P-SR005R-C49",
"SRCLOSE1-SR005R-C49"
],
"revenueStatus": "unknown",
"classificationBasis": "营销交付C06、个人互动C09、可玩内容创作C08、建设/农业专门任务C07,软件/人协同/采购渠道和计费分母分开,不按客户行业或投资标签当技术实测。",
"technicalReview": {
"level": "description",
"reviewedAt": "2026-11-01",
"summary": "仅官网/投资方当前任务核对,未运行产品/账号、投稿/生成或连接真实数据;声明/演示不当独立测试、已付款或法律/监管审查。",
"evidenceIds": [
"SRPRO1-P-SR005R-C49",
"SRCLOSE1-SR005R-C49"
]
}
},
{
"id": "AI218",
"name": "Variant(tryvariant.com)",
"url": "https://www.tryvariant.ai/",
"channel": "S14",
"cat": "C08",
"year": 2025,
"team": 5,
"location": "San Francisco, California, United States of America(投资方资料)",
"business": "文本/梗图/涂鸦到可玩小游戏及remix创作分发。",
"buyer": "内容/游戏创作者和社区用户",
"delivery": "原.ai跳转.com、beta申请;不与Variant-now合并",
"price": "创作者变现为描述,具体平台收费/分成及付费未知",
"businessModel": "可玩内容生成/社区,推理/游戏托管、内容版权审核和创作者分账待核",
"entityBasis": "品牌与原档案域名重定向对应,精确法人/注册未核",
"stage": "原.ai跳转.com、beta申请;不与Variant-now合并",
"cohort": "投资方自报2025成立,独立注册/品牌起点待核",
"teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知",
"sourceType": "公开投资方档案及当前官网",
"notes": "当前任务/买方可分类但AI方法/能力、注册、真实合同/净费、付费与留存未独立核;标价/市场机会/候补/创作者收入不作ARR。",
"evidenceIds": [
"SRPRO1-P-SR005R-C55",
"SRCLOSE1-SR005R-C55"
],
"revenueStatus": "unknown",
"classificationBasis": "营销交付C06、个人互动C09、可玩内容创作C08、建设/农业专门任务C07,软件/人协同/采购渠道和计费分母分开,不按客户行业或投资标签当技术实测。",
"technicalReview": {
"level": "description",
"reviewedAt": "2026-11-01",
"summary": "仅官网/投资方当前任务核对,未运行产品/账号、投稿/生成或连接真实数据;声明/演示不当独立测试、已付款或法律/监管审查。",
"evidenceIds": [
"SRPRO1-P-SR005R-C55",
"SRCLOSE1-SR005R-C55"
]
}
},
{
"id": "AI219",
"name": "Cascade(usecascade.ai)",
"url": "https://usecascade.ai/",
"channel": "S14",
"cat": "C07",
"year": 2025,
"team": 2,
"location": "San Francisco, California, United States of America(投资方资料)",
"business": "AEC企业RFP发现、匹配、提案和项目规范分析。",
"buyer": "建筑/工程/施工企业业务开发和提案团队",
"delivery": "当前发现/提案/规范为LIVE自述,预投标信号/比标等SOON,公开early access",
"price": "未见统一金额或已签软件/实施订单",
"businessModel": "行业商机/提案工作流软件,门户数据/质量维护、模型/专业审核与接入成本待核",
"entityBasis": "官网页脚Cascade Intelligence Inc.自述,独立注册及具体订单未核",
"stage": "当前发现/提案/规范为LIVE自述,预投标信号/比标等SOON,公开early access",
"cohort": "投资方自报2025成立,独立注册/品牌起点待核",
"teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知",
"sourceType": "公开投资方档案及当前官网",
"notes": "当前任务/买方可分类但AI方法/能力、注册、真实合同/净费、付费与留存未独立核;标价/市场机会/候补/创作者收入不作ARR。",
"evidenceIds": [
"SRPRO1-P-SR006R-C11",
"SRCLOSE1-SR006R-C11"
],
"revenueStatus": "unknown",
"classificationBasis": "营销交付C06、个人互动C09、可玩内容创作C08、建设/农业专门任务C07,软件/人协同/采购渠道和计费分母分开,不按客户行业或投资标签当技术实测。",
"technicalReview": {
"level": "description",
"reviewedAt": "2026-11-01",
"summary": "仅官网/投资方当前任务核对,未运行产品/账号、投稿/生成或连接真实数据;声明/演示不当独立测试、已付款或法律/监管审查。",
"evidenceIds": [
"SRPRO1-P-SR006R-C11",
"SRCLOSE1-SR006R-C11"
]
}
},
{
"id": "AI220",
"name": "Vereda",
"url": "https://www.vereda.ia.br/",
"channel": "S14",
"cat": "C07",
"year": 2025,
"team": 8,
"location": "Rio Verde, Brazil(投资方资料)",
"business": "农业采购Agent渠道,WhatsApp助手与田间顾问连接农户和制造商。",
"buyer": "农户使用;供应商/伙伴为报酬关系方",
"delivery": "厂家直接开票交货,平台不库存/转售;助手和顾问共同服务",
"price": "农户免费无月费/平台费,平台与供应商/伙伴报酬未知,不猜抽佣",
"businessModel": "供应商支持的采购渠道+助手/人工服务,净报酬/退货争议、人员和模型成本待核",
"entityBasis": "官网VEREDA LTDA自述,精确登记编号/实际供应商合同未核",
"stage": "厂家直接开票交货,平台不库存/转售;助手和顾问共同服务",
"cohort": "投资方自报2025成立,独立注册/品牌起点待核",
"teamBasis": "公开档案人数,2026-11-01读取,统计截至日未知",
"sourceType": "公开投资方档案及当前官网",
"notes": "当前任务/买方可分类但AI方法/能力、注册、真实合同/净费、付费与留存未独立核;标价/市场机会/候补/创作者收入不作ARR。",
"evidenceIds": [
"SRPRO1-P-SR006R-C57",
"SRCLOSE1-SR006R-C57"
],
"revenueStatus": "unknown",
"classificationBasis": "营销交付C06、个人互动C09、可玩内容创作C08、建设/农业专门任务C07,软件/人协同/采购渠道和计费分母分开,不按客户行业或投资标签当技术实测。",
"technicalReview": {
"level": "description",
"reviewedAt": "2026-11-01",
"summary": "仅官网/投资方当前任务核对,未运行产品/账号、投稿/生成或连接真实数据;声明/演示不当独立测试、已付款或法律/监管审查。",
"evidenceIds": [
"SRPRO1-P-SR006R-C57",
"SRCLOSE1-SR006R-C57"
]
}
}
],
"observations": [
@@ -105417,7 +105237,7 @@
},
{
"id": "SRPRO1-P-SR005R-C19",
"companyId": "AI216",
"companyId": null,
"title": "doublespeed公开独立档案:成立/团队字段",
"url": "https://speedrun.a16z.com/companies/doublespeed",
"publishedAt": null,
@@ -105725,7 +105545,7 @@
},
{
"id": "SRPRO1-P-SR005R-C49",
"companyId": "AI217",
"companyId": null,
"title": "SoulLink公开独立档案:成立/团队字段",
"url": "https://speedrun.a16z.com/companies/soullink",
"publishedAt": null,
@@ -105791,7 +105611,7 @@
},
{
"id": "SRPRO1-P-SR005R-C55",
"companyId": "AI218",
"companyId": null,
"title": "Variant公开独立档案:成立/团队字段",
"url": "https://speedrun.a16z.com/companies/variant",
"publishedAt": null,
@@ -105945,7 +105765,7 @@
},
{
"id": "SRPRO1-P-SR006R-C11",
"companyId": "AI219",
"companyId": null,
"title": "Cascade公开独立档案:成立/团队字段",
"url": "https://speedrun.a16z.com/companies/cascade",
"publishedAt": null,
@@ -106374,7 +106194,7 @@
},
{
"id": "SRPRO1-P-SR006R-C57",
"companyId": "AI220",
"companyId": null,
"title": "Vereda公开独立档案:成立/团队字段",
"url": "https://speedrun.a16z.com/companies/vereda",
"publishedAt": null,
@@ -108560,259 +108380,6 @@
"kind": "公司公开产品/收费/合同范围核对",
"summary": "2026-10-18政策提示/源材料送第三方语言/TTS服务,音频存储用于回听,默认账户内、主动分享后链接持有人可听;不训练自家通用模型。",
"limitation": "禁通用模型训练不等零外传/零存储,连接个人助手会有另外资料范围,未授权/输入文件或他人声音;实际安全/删除未经独立测试。"
},
{
"id": "SRCLOSE1-SR005R-C08",
"companyId": null,
"title": "Atrios 当前交付/官网缺项收尾核对",
"url": "https://www.atrios.com",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "现官网为Ace工具/优惠推荐、连接个人助手与有偿人际引荐;AI供应商标签和MCP连接本身不证核心AI由Atrios提供,具体AI任务/人工比例、引荐费/分账及当前合同未知,保留主营待核。免费249价值诊断/奖励和客户节省非平台收入。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 b814c8bec8148c86fb7627ca8c26419fd56a3fe5097189822f29979638e5579d,115916字节。"
},
{
"id": "SRCLOSE1-SR005R-C12",
"companyId": null,
"title": "bins 当前交付/官网缺项收尾核对",
"url": "https://joinbins.com/app",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "普通HTTP403但浏览器可读其App Store:Bins Inc.二手P2P市场、照片创建商品/个性推荐、免费入口。具体AI实现/平台佣金未明,保留主营待核;实物交易总额/评分和免费应用不代净费或零收入。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP: HTTP Error 403: Forbidden;浏览器补读/限制按摘要保留,不据读取失败判停业。"
},
{
"id": "SRCLOSE1-SR005R-C16",
"companyId": null,
"title": "Creed 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/creed",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "档案官网字段为空,仅有Creed Labs语音AI工作室/首产品自述;500K+用户、正单位经济无日期/付费/成本底表。缺当前独立产品网址和具体交付/收费,保留待核,不猜同名网址或推MRR。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR005R-C19",
"companyId": "AI216",
"title": "doublespeed 当前交付/官网缺项收尾核对",
"url": "https://doublespeed.ai",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "官网当前AI社交内容/托管账号运营及人工微调与档案一致,关联客户运营;具体价格、实收/平台分账及人工/内容/账号维护成本未公开,仅业务分类不搭建自动账号或推广。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 40e4bb82663ab983257557916ea6f1c9a57a0f307ca04e5b967995ab102f9ab7,202590字节。"
},
{
"id": "SRCLOSE1-SR005R-C30",
"companyId": null,
"title": "Lekondo 当前交付/官网缺项收尾核对",
"url": "https://lekondo.com",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "普通HTTP403,浏览器当前官网可读服装审美/ontology研究及商店/应用入口,AI具体任务和商业交付未明。保留主营待核,不把服装研究/AI投资批次当AI营收或从抓取失败推停业。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP: HTTP Error 403: Forbidden;浏览器补读/限制按摘要保留,不据读取失败判停业。"
},
{
"id": "SRCLOSE1-SR005R-C34",
"companyId": null,
"title": "Luvu 当前交付/官网缺项收尾核对",
"url": "https://withbasis.co/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "withbasis.co HTTP200仅JavaScript解包提示,浏览抓取超时;原Luvu档案标题为Basis/The Human Foundation behind Frontier AI,当前品牌/主体及具体交付未核。未执行包或借同名Basis公司,保留待核。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 9046ef0911d2d14d56008ab7ae5d2f90bd1ab6d01b13b99b51f360b205d0d21b,874749字节。"
},
{
"id": "SRCLOSE1-SR005R-C40",
"companyId": null,
"title": "Ocoder 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/ocoder",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "档案官网字段为空,原述非技术人员在真实代码库构建/共享方案工具;具体当前产品/代码权限/收费与法律主体未核。保留待核,不猜同名Ocoder网址或以vibe coding标签推现有交付。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR005R-C41",
"companyId": null,
"title": "Oleum 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/oleum",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "档案官网字段为空,原述AI数据交互和未来基础设施愿景;具体当前产品、客户和收费未知。保留待核,不将未来通用层愿景当当前服务或关联同名能源公司。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR005R-C43",
"companyId": null,
"title": "Prepp 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/prepp",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "档案官网字段为空,教育内容/批改/出勤模块为自述,当前AI方法/实际产品和学校采购未核。保留待核,不收集学生资料或把教育任务自动当AI已交付。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR005R-C49",
"companyId": "AI217",
"title": "SoulLink 当前交付/官网缺项收尾核对",
"url": "https://soullink.io",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "官网当前3D AI陪伴/交互记忆及beta入口与原档案对应,关联个人应用;Sept2026上线为厂商标注,实际可用/付费/留存与渲染、模型、记忆/支持成本未知,未下载或互动。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 d7c6d38f7d7988f4472819672480efd1c6e5aecdf213cf19d64bda06ea1d70b6,32979字节。"
},
{
"id": "SRCLOSE1-SR005R-C50",
"companyId": null,
"title": "Sounding 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/sounding",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "官网字段为linkedin.com/in/notavailable占位而非有效产品网址;档案Sounding描述Pelago语音wellness品牌,当前品牌/主体/具体AI产品未对应。保留待核,不借其他同名Pelago及前公司数据。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR005R-C55",
"companyId": "AI218",
"title": "Variant 当前交付/官网缺项收尾核对",
"url": "https://www.tryvariant.ai/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "原tryvariant.ai重定向tryvariant.com,当前文本/梗图到可玩小游戏、remix社区beta与AI档案任务对应;同名SR006 Variant-now不合并,收费/实际生成、留存和创作者分账未知。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 80a335be4a8a00171fc04b7338ac89ec9764f204172bc7db742ed05482c42d75,59112字节。"
},
{
"id": "SRCLOSE1-SR005R-C56",
"companyId": null,
"title": "Vega 当前交付/官网缺项收尾核对",
"url": "https://joinvega.com",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "joinvega.com普通HTTP403且浏览抓取不可访问,原AI关系notes/social-orbits任务自述未获当前交付核对。保留待核,不抓联系人/关系图或关联其他同名Vega,不把社交数据量作收入。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP: HTTP Error 403: Forbidden;浏览器补读/限制按摘要保留,不据读取失败判停业。"
},
{
"id": "SRCLOSE1-SR006R-C11",
"companyId": "AI219",
"title": "Cascade 当前交付/官网缺项收尾核对",
"url": "https://usecascade.ai/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "普通HTTP403但浏览可读当前AEC企业RFP发现、提案/规范分析,区别原建设项目预测愿景。部分功能LIVE、其他SOON分列;120M机会额、客户营业额/示例项目非Cascade收入,关联行业应用。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP: HTTP Error 403: Forbidden;浏览器补读/限制按摘要保留,不据读取失败判停业。"
},
{
"id": "SRCLOSE1-SR006R-C14",
"companyId": null,
"title": "Coalition Systems 当前交付/官网缺项收尾核对",
"url": "https://www.coalition.systems",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "现官网为国防/公共安全生态安全通信、协作和决策支持,未明确自身具体AI任务;创始AI研究背景不当产品AI证据,保留待核。仅商业任务分类,不收录操作/目标识别等实现。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 3887ba645f6b2fe23e98756b57fb27be4caf96fbe8b45aee189fc50c3c26e9a4,634900字节。"
},
{
"id": "SRCLOSE1-SR006R-C30",
"companyId": null,
"title": "Oasiz 当前交付/官网缺项收尾核对",
"url": "https://www.oasiz.ai/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "oasiz.ai普通HTTP403,浏览指向gobadger.app而无法读取,原游戏社交/AI创作分发和新品牌关系未核。9K小时/300K plays/7M视频观看及创始人旧应用不是平台收入,保留身份/AI交付待核。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP: HTTP Error 403: Forbidden;浏览器补读/限制按摘要保留,不据读取失败判停业。"
},
{
"id": "SRCLOSE1-SR006R-C33",
"companyId": null,
"title": "PartyHat 当前交付/官网缺项收尾核对",
"url": "https://speedrun.a16z.com/companies/partyhat",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "独立档案公司简介和官网字段均为空,仅自报2025两人,不足以判断AI主营/产品/收费。保留待核,不从PartyHat名字/批次猜业务、域名或收入。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 仅复核已读投资方档案官网/简介字段,未编造外部产品网址。"
},
{
"id": "SRCLOSE1-SR006R-C45",
"companyId": null,
"title": "Simula 当前交付/官网缺项收尾核对",
"url": "https://simula.ad",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "当前官网仅广告平台、联系入口及动态轮播计数,AI格式/真实商业交付未明;原5M DAU/100M下载是待接入应用覆盖,约10M net revenue at full rollout为情景/未全部上线,不作已实现净费或ARR,保留待核。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 c0f392eda874179ac8b2d6adf4790868eae5761be925f6f3e91c79206d42118f,49121字节。"
},
{
"id": "SRCLOSE1-SR006R-C48",
"companyId": null,
"title": "snag 当前交付/官网缺项收尾核对",
"url": "https://snagsublets.com/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "现官网真实租赁/转租房源市场可读,但原社交帖转换/匹配的专用AI当前未获具体佐证,保留待核。原6.5M/30天是requests金额,页面租金/用户节省及房源数量不是平台成交/收入,具体收费未知。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 b6820f40072ec315ccadd50d402043f6a86288b57d8ff9ec05bae1c469288705,205538字节。"
},
{
"id": "SRCLOSE1-SR006R-C57",
"companyId": "AI220",
"title": "Vereda 当前交付/官网缺项收尾核对",
"url": "https://www.vereda.ia.br/",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已列候选的有限官网/品牌/缺项核对",
"summary": "官网Vera WhatsApp采购及田间顾问与原投资方采购Agent任务对应;厂家直接开票交货、不库存转售、农户无月费/平台费,供应商/伙伴报酬未知。关联行业应用;实际AI方法/合同未独立核,不把采购GMV/农户节省作收入。",
"limitation": "本轮有限公开核对,不登录、执行前端包、提交表单或购买;实际注册/合同、净费及效果未核。 普通HTTP响应SHA256 2bbe739276d54360dad91a9db292cd4297e048ba7a4755962062492d4e69ff57,271759字节。"
},
{
"id": "SRCLOSE1-CREED-USERS",
"companyId": null,
"title": "CREED-USERS 财务范围排除",
"url": "https://speedrun.a16z.com/companies/creed",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已读投资方档案财务口径收尾复核",
"summary": "原Creed档案500K+用户/每周倍增/正单位经济仅采用与成本判断自述,非付费人数/净收入;官网缺失,未核期日、分母、人工和推理/渠道成本,不作ARR。",
"limitation": "不以预测/用户/请求体量、合作方数据或不明确净额增加财务观测,候选引用保留原档案证据。"
},
{
"id": "SRCLOSE1-SIMULA-ROLLOUT",
"companyId": null,
"title": "SIMULA-ROLLOUT 财务范围排除",
"url": "https://speedrun.a16z.com/companies/simula",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已读投资方档案财务口径收尾复核",
"summary": "原约10M+ net revenue明确at full rollout,且5M+DAU/100M+下载是待集成应用覆盖。保留情景/接入范围,未给实际上线量/净费、币种和指标日,不纳收入样本。",
"limitation": "不以预测/用户/请求体量、合作方数据或不明确净额增加财务观测,候选引用保留原档案证据。"
},
{
"id": "SRCLOSE1-SNAG-REQUESTS",
"companyId": null,
"title": "SNAG-REQUESTS 财务范围排除",
"url": "https://speedrun.a16z.com/companies/snag",
"publishedAt": null,
"accessedAt": "2026-11-01",
"kind": "已读投资方档案财务口径收尾复核",
"summary": "原6.5M requests in last30days,增长40%/月和3K房源为自报;请求价值非已成交租赁/净平台收入。需真实履约/收费/退款、币种/财务日及AI交付,不推ARR。",
"limitation": "不以预测/用户/请求体量、合作方数据或不明确净额增加财务观测,候选引用保留原档案证据。"
}
],
"reviews": [
@@ -120292,106 +119859,6 @@
"companyIds": [
"AI212"
]
},
{
"id": "SRCLOSE1-R-PASS",
"type": "剩余初始候选的逐条公开核对",
"company": "本轮20个已有候选",
"scope": "dataset",
"summary": "对仍有初始备注20项做有限当前核对:14官网入口、6缺有效产品网址;官网普通HTTP/浏览结果和品牌变化/缺项逐项存证,5项关联、15项保留。",
"handling": "不再扩源或按标签/批次补AI主营。所有20条初始通用备注已替换具体访问/当前产品或缺字段;已明确未决项不无限重试,不宣称全部注册/技术/财务已独立验证。",
"evidenceIds": [
"SRCLOSE1-SR005R-C08",
"SRCLOSE1-SR005R-C12",
"SRCLOSE1-SR005R-C16",
"SRCLOSE1-SR005R-C19",
"SRCLOSE1-SR005R-C30",
"SRCLOSE1-SR005R-C34",
"SRCLOSE1-SR005R-C40",
"SRCLOSE1-SR005R-C41",
"SRCLOSE1-SR005R-C43",
"SRCLOSE1-SR005R-C49",
"SRCLOSE1-SR005R-C50",
"SRCLOSE1-SR005R-C55",
"SRCLOSE1-SR005R-C56",
"SRCLOSE1-SR006R-C11",
"SRCLOSE1-SR006R-C14",
"SRCLOSE1-SR006R-C30",
"SRCLOSE1-SR006R-C33",
"SRCLOSE1-SR006R-C45",
"SRCLOSE1-SR006R-C48",
"SRCLOSE1-SR006R-C57"
]
},
{
"id": "SRCLOSE1-R-NOURL",
"type": "官网/具体产品缺项",
"company": "Creed、Ocoder、Oleum、Prepp、Sounding、PartyHat",
"scope": "excluded-candidate",
"summary": "六项没有有效产品网址:五项空字段,一项LinkedIn占位;PartyHat简介亦空,Sounding/Pelago品牌对应未知。",
"handling": "仅原档案自报年份/人数与已有任务描述,不猜域名/同名主体或从未读官网推不存在/零收入;保留待核入口和具体所需资料。",
"evidenceIds": [
"SRCLOSE1-SR005R-C16",
"SRCLOSE1-SR005R-C40",
"SRCLOSE1-SR005R-C41",
"SRCLOSE1-SR005R-C43",
"SRCLOSE1-SR005R-C50",
"SRCLOSE1-SR006R-C33"
]
},
{
"id": "SRCLOSE1-R-NONINCOME",
"type": "采用量、预测和请求不是平台收入",
"company": "未决候选及品牌/访问限制",
"scope": "excluded-candidate",
"summary": "Simula约10M为全上线情景、合作应用DAU/下载非自身付费;snag6.5M为请求价值;Creed500K用户和正单位经济未给底表。其余当前AI/品牌/可访问性逐项分列。",
"handling": "原495经营观测不变,未决候选不生成公司或收入。Atrios供应商AI/MCP、Coalition研究背景、Bins照片商品化及Simula服务AI客户不足以自动确认自身AI方法;访问失败/JS包装或品牌重定向不判停业/造假。",
"evidenceIds": [
"SRCLOSE1-CREED-USERS",
"SRCLOSE1-SIMULA-ROLLOUT",
"SRCLOSE1-SNAG-REQUESTS",
"SRCLOSE1-SR005R-C08",
"SRCLOSE1-SR005R-C12",
"SRCLOSE1-SR005R-C34",
"SRCLOSE1-SR006R-C14",
"SRCLOSE1-SR006R-C30"
]
},
{
"id": "SRCLOSE1-R-CLASSIFIED",
"type": "当前交付、未来功能和同名去重",
"company": "doublespeed、SoulLink、Variant、Cascade、Vereda",
"scope": "companies",
"summary": "五项当前官网与AI产品任务自述对应;Cascade改以RFP/提案及LIVE/SOON分列,Variant.ai→.com且不误并Variant-now,Vereda厂家直开票/交货和人工顾问明确。",
"handling": "只有description,不能把营销账号/三维演示、beta/上线标注、客户工程机会或采购节省当性能/净收入。具体收费、平台/创作者/厂商分账、人工和模型/运行成本待真实合同核。",
"evidenceIds": [
"SRCLOSE1-SR005R-C19",
"SRCLOSE1-SR005R-C49",
"SRCLOSE1-SR005R-C55",
"SRCLOSE1-SR006R-C11",
"SRCLOSE1-SR006R-C57"
],
"companyIds": [
"AI216",
"AI217",
"AI218",
"AI219",
"AI220"
]
},
{
"id": "MODEL1-AGRI-DIRECT",
"type": "商业模式初评",
"company": "农户免费+供应商支持的采购渠道",
"scope": "companies",
"summary": "已核事实:Vereda的采购助手与田间顾问服务农户,厂家开票/交货,平台不库存转售;农户无月费/平台费,报酬关联供应商/伙伴但实价未知。",
"handling": "待验证判断:先核谁付费、合同报酬与实际采购履约/退货分账,再记顾问/供应商接入、模型/文件处理、售后争议和获客成本。渠道净报酬、商品GMV及融资/信用服务分开,向供应商收款与农户复购需同时支持;免费农户不等零平台收入,不猜抽佣或按GMV当ARR。",
"evidenceIds": [
"SRCLOSE1-SR006R-C57"
],
"companyIds": [
"AI220"
]
}
],
"coverage": {
@@ -136636,7 +136103,7 @@
"sourceId": "S14",
"url": "https://speedrun.a16z.com/api/companies/companyparams?limit=100&offset=0&cohort=SR005",
"accessedAt": "2026-11-01",
"scope": "公开有限名单59项;25关联、21旧年、1既有超年、0品牌/年份待核、12当前AI/主体待核。本轮补完初始通用备注为具体官网/字段/身份及收入缺项;保留未决并非全部产品/财务独立验证。",
"scope": "公开有限名单59项;22关联、21旧年、1既有超年、0品牌/年份待核、15当前AI/主体待核。机器人评估/硬件、Agent测试、模型后训练与工作助手按具体交付关联,原位置/URL和证据保留;名单不等独立技术/财务验收。",
"complete": false,
"records": [
{
@@ -136757,10 +136224,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C08",
"SRCLOSE1-SR005R-C08"
"SRPRO1-P-SR005R-C08"
],
"note": "现官网为Ace工具/优惠推荐、连接个人助手与有偿人际引荐;AI供应商标签和MCP连接本身不证核心AI由Atrios提供,具体AI任务/人工比例、引荐费/分账及当前合同未知,保留主营待核。免费249价值诊断/奖励和客户节省非平台收入。"
"note": "已读独立档案,自报Founded 2025、10人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C09",
@@ -136819,10 +136285,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C12",
"SRCLOSE1-SR005R-C12"
"SRPRO1-P-SR005R-C12"
],
"note": "普通HTTP403但浏览器可读其App Store:Bins Inc.二手P2P市场、照片创建商品/个性推荐、免费入口。具体AI实现/平台佣金未明,保留主营待核;实物交易总额/评分和免费应用不代净费或零收入。"
"note": "已读独立档案,自报Founded 2025、3人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C13",
@@ -136878,11 +136343,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C16",
"SRCLOSE1-SR005R-C16",
"SRCLOSE1-CREED-USERS"
"SRPRO1-P-SR005R-C16"
],
"note": "档案官网字段为空,仅有Creed Labs语音AI工作室/首产品自述;500K+用户、正单位经济无日期/付费/成本底表。缺当前独立产品网址和具体交付/收费,保留待核,不猜同名网址或推MRR。"
"note": "已读独立档案,自报Founded 2025、4人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C17",
@@ -136925,17 +136388,15 @@
"id": "SR005R-C19",
"name": "doublespeed",
"url": "https://speedrun.a16z.com/companies/doublespeed",
"categoryId": "C06",
"categoryId": "C00",
"kind": "company",
"profileStatus": "readable",
"status": "linked",
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C19",
"SRCLOSE1-SR005R-C19"
"SRPRO1-P-SR005R-C19"
],
"note": "官网当前AI社交内容/托管账号运营及人工微调与档案一致,关联客户运营;具体价格、实收/平台分账及人工/内容/账号维护成本未公开,仅业务分类不搭建自动账号或推广。",
"companyId": "AI216"
"note": "已读独立档案,自报Founded 2025、11人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C20",
@@ -137109,10 +136570,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C30",
"SRCLOSE1-SR005R-C30"
"SRPRO1-P-SR005R-C30"
],
"note": "普通HTTP403,浏览器当前官网可读服装审美/ontology研究及商店/应用入口,AI具体任务和商业交付未明。保留主营待核,不把服装研究/AI投资批次当AI营收或从抓取失败推停业。"
"note": "已读独立档案,自报Founded 2025、6人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C31",
@@ -137173,10 +136633,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C34",
"SRCLOSE1-SR005R-C34"
"SRPRO1-P-SR005R-C34"
],
"note": "withbasis.co HTTP200仅JavaScript解包提示,浏览抓取超时;原Luvu档案标题为Basis/The Human Foundation behind Frontier AI,当前品牌/主体及具体交付未核。未执行包或借同名Basis公司,保留待核。"
"note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C35",
@@ -137260,10 +136719,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C40",
"SRCLOSE1-SR005R-C40"
"SRPRO1-P-SR005R-C40"
],
"note": "档案官网字段为空,原述非技术人员在真实代码库构建/共享方案工具;具体当前产品/代码权限/收费与法律主体未核。保留待核,不猜同名Ocoder网址或以vibe coding标签推现有交付。"
"note": "已读独立档案,自报Founded 2025、3人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C41",
@@ -137275,10 +136733,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C41",
"SRCLOSE1-SR005R-C41"
"SRPRO1-P-SR005R-C41"
],
"note": "档案官网字段为空,原述AI数据交互和未来基础设施愿景;具体当前产品、客户和收费未知。保留待核,不将未来通用层愿景当当前服务或关联同名能源公司。"
"note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C42",
@@ -137308,10 +136765,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C43",
"SRCLOSE1-SR005R-C43"
"SRPRO1-P-SR005R-C43"
],
"note": "档案官网字段为空,教育内容/批改/出勤模块为自述,当前AI方法/实际产品和学校采购未核。保留待核,不收集学生资料或把教育任务自动当AI已交付。"
"note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C44",
@@ -137393,17 +136849,15 @@
"id": "SR005R-C49",
"name": "SoulLink",
"url": "https://speedrun.a16z.com/companies/soullink",
"categoryId": "C09",
"categoryId": "C00",
"kind": "company",
"profileStatus": "readable",
"status": "linked",
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C49",
"SRCLOSE1-SR005R-C49"
"SRPRO1-P-SR005R-C49"
],
"note": "官网当前3D AI陪伴/交互记忆及beta入口与原档案对应,关联个人应用;Sept2026上线为厂商标注,实际可用/付费/留存与渲染、模型、记忆/支持成本未知,未下载或互动。",
"companyId": "AI217"
"note": "已读独立档案,自报Founded 2025、6人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C50",
@@ -137415,10 +136869,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C50",
"SRCLOSE1-SR005R-C50"
"SRPRO1-P-SR005R-C50"
],
"note": "官网字段为linkedin.com/in/notavailable占位而非有效产品网址;档案Sounding描述Pelago语音wellness品牌,当前品牌/主体/具体AI产品未对应。保留待核,不借其他同名Pelago及前公司数据。"
"note": "已读独立档案,自报Founded 2025、1人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C51",
@@ -137491,17 +136944,15 @@
"id": "SR005R-C55",
"name": "Variant",
"url": "https://speedrun.a16z.com/companies/variant",
"categoryId": "C08",
"categoryId": "C00",
"kind": "company",
"profileStatus": "readable",
"status": "linked",
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C55",
"SRCLOSE1-SR005R-C55"
"SRPRO1-P-SR005R-C55"
],
"note": "原tryvariant.ai重定向tryvariant.com,当前文本/梗图到可玩小游戏、remix社区beta与AI档案任务对应;同名SR006 Variant-now不合并,收费/实际生成、留存和创作者分账未知。",
"companyId": "AI218"
"note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C56",
@@ -137513,10 +136964,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR005-ROSTER",
"SRPRO1-P-SR005R-C56",
"SRCLOSE1-SR005R-C56"
"SRPRO1-P-SR005R-C56"
],
"note": "joinvega.com普通HTTP403且浏览抓取不可访问,原AI关系notes/social-orbits任务自述未获当前交付核对。保留待核,不抓联系人/关系图或关联其他同名Vega,不把社交数据量作收入。"
"note": "已读独立档案,自报Founded 2025、2人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR005R-C57",
@@ -137567,7 +137017,7 @@
"sourceId": "S14",
"url": "https://speedrun.a16z.com/api/companies/companyparams?limit=100&offset=0&cohort=SR006",
"accessedAt": "2026-11-01",
"scope": "公开有限名单59项;41关联、5旧年、0既有超年、3品牌/年份待核、10当前AI/主体待核。本轮补完初始通用备注为具体官网/字段/身份及收入缺项;保留未决并非全部产品/财务独立验证。",
"scope": "公开SR006有限名单59项;39关联、5旧年、0既有超年、3品牌/年份待核、12当前AI/主体待核。照片/健康/体育/高校/音频任务关联,PicPet真实应用/订阅可读但AI仍缺;原位置/URL/证据保留。",
"complete": false,
"records": [
{
@@ -137745,17 +137195,15 @@
"id": "SR006R-C11",
"name": "Cascade",
"url": "https://speedrun.a16z.com/companies/cascade",
"categoryId": "C07",
"categoryId": "C00",
"kind": "company",
"profileStatus": "readable",
"status": "linked",
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C11",
"SRCLOSE1-SR006R-C11"
"SRPRO1-P-SR006R-C11"
],
"note": "普通HTTP403但浏览可读当前AEC企业RFP发现、提案/规范分析,区别原建设项目预测愿景。部分功能LIVE、其他SOON分列;120M机会额、客户营业额/示例项目非Cascade收入,关联行业应用。",
"companyId": "AI219"
"note": "已读独立档案,自报Founded 2025、2人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C12",
@@ -137802,10 +137250,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C14",
"SRCLOSE1-SR006R-C14"
"SRPRO1-P-SR006R-C14"
],
"note": "现官网为国防/公共安全生态安全通信、协作和决策支持,未明确自身具体AI任务;创始AI研究背景不当产品AI证据,保留待核。仅商业任务分类,不收录操作/目标识别等实现。"
"note": "已读独立档案,自报Founded 2025、4人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C15",
@@ -138065,10 +137512,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C30",
"SRCLOSE1-SR006R-C30"
"SRPRO1-P-SR006R-C30"
],
"note": "oasiz.ai普通HTTP403,浏览指向gobadger.app而无法读取,原游戏社交/AI创作分发和新品牌关系未核。9K小时/300K plays/7M视频观看及创始人旧应用不是平台收入,保留身份/AI交付待核。"
"note": "已读独立档案,自报Founded 2025、4人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C31",
@@ -138109,10 +137555,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C33",
"SRCLOSE1-SR006R-C33"
"SRPRO1-P-SR006R-C33"
],
"note": "独立档案公司简介和官网字段均为空,仅自报2025两人,不足以判断AI主营/产品/收费。保留待核,不从PartyHat名字/批次猜业务、域名或收入。"
"note": "已读独立档案,自报Founded 2025、2人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C34",
@@ -138318,11 +137763,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C45",
"SRCLOSE1-SR006R-C45",
"SRCLOSE1-SIMULA-ROLLOUT"
"SRPRO1-P-SR006R-C45"
],
"note": "当前官网仅广告平台、联系入口及动态轮播计数,AI格式/真实商业交付未明;原5M DAU/100M下载是待接入应用覆盖,约10M net revenue at full rollout为情景/未全部上线,不作已实现净费或ARR,保留待核。"
"note": "已读独立档案,自报Founded 2025、5人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C46",
@@ -138365,11 +137808,9 @@
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C48",
"SRCLOSE1-SR006R-C48",
"SRCLOSE1-SNAG-REQUESTS"
"SRPRO1-P-SR006R-C48"
],
"note": "现官网真实租赁/转租房源市场可读,但原社交帖转换/匹配的专用AI当前未获具体佐证,保留待核。原6.5M/30天是requests金额,页面租金/用户节省及房源数量不是平台成交/收入,具体收费未知。"
"note": "已读独立档案,自报Founded 2025、4人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C49",
@@ -138519,17 +137960,15 @@
"id": "SR006R-C57",
"name": "Vereda",
"url": "https://speedrun.a16z.com/companies/vereda",
"categoryId": "C07",
"categoryId": "C00",
"kind": "company",
"profileStatus": "readable",
"status": "linked",
"status": "pending-ai",
"evidenceIds": [
"SRALL1-SR006-ROSTER",
"SRPRO1-P-SR006R-C57",
"SRCLOSE1-SR006R-C57"
"SRPRO1-P-SR006R-C57"
],
"note": "官网Vera WhatsApp采购及田间顾问与原投资方采购Agent任务对应;厂家直接开票交货、不库存转售、农户无月费/平台费,供应商/伙伴报酬未知。关联行业应用;实际AI方法/合同未独立核,不把采购GMV/农户节省作收入。",
"companyId": "AI220"
"note": "已读独立档案,自报Founded 2025、8人;年份自报已取得,当前官网/AI主营和精确主体尚待人工复核,不把AI标签直接当业务成立。"
},
{
"id": "SR006R-C58",
+5 -5
View File
@@ -1,5 +1,5 @@
{
"version": "2026-11-01-source-closeout-1",
"version": "2026-11-01-sr-learning-health-1",
"scopeConfirmedAt": "2026-10-30",
"acceptance": "以确认的公开来源清单为边界,逐条核对并标明缺项。",
"provenance": "S01—S12恢复自已提交用户的《AI公司研究_来源与分类模板》来源清单;S13—S16单列后续已使用的补充证据渠道,不将使用次数当作全量覆盖。",
@@ -3040,8 +3040,8 @@
"speedrun.a16z.com"
],
"initialAccess": "见具体证据访问记录",
"boundary": "公开七批321唯一位置及原HTML/GET审计保留;226补读档案中138旧年、88自报两年:59已补官网关联、24当前AI/主体待核、5品牌/年份待核。本系列311独立档案已读,10复用未冒充本轮重读。七批139关联、1既有超年、145旧年、6品牌/年份、30当前AI/交付待核。最后20个初始备注已逐项核对14官网和6缺有效网址,替换具体缺项;5新关联,15留未决,不继续扩池。新增23证据,原495经营记录/ARR/MRR和YC保留。有限来源逐条核对并保留未决,不证明未公开公司覆盖或全部注册/技术/财务审计。",
"nextCheck": "本轮有限公开来源首轮核对已落实具体记录/缺项;24新批次及SR007六项AI/身份、六项年份未决保留,不用标签强填。后续只有新增公司原件、可访问产品、注册/品牌链或真实合同/净费/财务日出现时补证;不无限重试同一空页/权限失败,也不由采用/请求/未来全上线预测推ARR/造假。",
"boundary": "公开七批321唯一位置及原HTML/GET审计保留;226补读档案中138旧年、88自报两年:54已补官网关联、29当前AI/主体待核、5品牌/年份待核。本系列311独立档案已读,10复用未本轮重读。七批134关联、1既有超年、145旧年、6品牌/年份、35当前AI/交付待核。新增Auto/Clair/Snapp/Straia/SUN,PicPet应用/订阅存在但AI任务待核。新增21证据和两条Clair原始财务声明,均排除比较;原493、ARR/MRR及YC覆盖保留。免费/购买未开、2027预订、D2C标签和B2B签约/用户留存分列,不当当前ARR/独立能力或临床认证。",
"nextCheck": "继续29个新批次及SR007六个主营待核、10复用变化;核成立/品牌/注册及实际合同。Clair两渠道期间/财务日、预订/交货退款和软件促销转费,Auto当前Photos与旧Frames、Snapp条款/收费和自有榜,Straia机构采购/接入维护,SUN购买开放及每分钟/模型额度成本,PicPet实际AI/留存分母和政策缺项待补。不得从DAU、合同/标价、预测结果或训练规模推ARR/造假概率。",
"limitation": "来源可读不等于声明已独立验证。",
"rosterAudit": {
"url": "https://speedrun.a16z.com/companies",
@@ -3189,8 +3189,8 @@
},
"outsideTargetYears": 138,
"targetYearSelfReports": 88,
"newLinkedCompanies": 59,
"pendingCurrentAIOrIdentity": 24,
"newLinkedCompanies": 54,
"pendingCurrentAIOrIdentity": 29,
"records": [
{
"candidateId": "SR001R-C01",
+1 -1
View File
@@ -1,5 +1,5 @@
{
"sourceVersion": "2026-11-01-source-closeout-1",
"sourceVersion": "2026-11-01-sr-learning-health-1",
"asOf": "2026-11-01",
"metric": "platform-mrr-usd",
"sampleUnit": "product-or-business",
+3 -3
View File
@@ -28,9 +28,6 @@ importers:
remark-gfm:
specifier: 4.0.1
version: 4.0.1(supports-color@7.2.0)
sharp:
specifier: 0.35.5
version: 0.35.5(@types/node@22.20.5)
devDependencies:
'@tailwindcss/postcss':
specifier: 4.3.3
@@ -62,6 +59,9 @@ importers:
postcss:
specifier: 8.5.31
version: 8.5.31
sharp:
specifier: 0.35.5
version: 0.35.5(@types/node@22.20.5)
tailwindcss:
specifier: 4.3.3
version: 4.3.3
+5 -19
View File
@@ -45,15 +45,14 @@ def read_token(filename):
return value
def request(base, token, method, path, payload=None, request_id=None, *, image_type=None):
data = payload if image_type else (None if payload is None else json.dumps(payload, ensure_ascii=False).encode())
def request(base, token, method, path, payload=None, request_id=None):
data = None if payload is None else json.dumps(payload, ensure_ascii=False).encode()
if data is not None and len(data) > 8 * 1024 * 1024:
raise ValueError('Request exceeds 8 MiB; split into smaller atomic batches')
headers = {'Authorization': 'Bearer ' + token, 'Accept': 'application/json'}
if data is not None:
headers['Content-Type'] = image_type or 'application/json'
if request_id is not None:
headers['Idempotency-Key'] = request_id
headers['Content-Type'] = 'application/json'
headers['Idempotency-Key'] = request_id
opener = urllib.request.build_opener(NoRedirect())
for attempt in range(2):
req = urllib.request.Request(base + path, data=data, method=method, headers=headers)
@@ -128,8 +127,6 @@ def main():
editing.add_argument('slug')
editing.add_argument('file')
editing.add_argument('--request-id')
upload = sub.add_parser('upload-image', help='Upload a static image and print its Markdown URL')
upload.add_argument('file')
saving = sub.add_parser('save')
saving.add_argument('file', help='Private JSON file or - for stdin; one document or {documents: [...]}')
saving.add_argument('--request-id', help='Reuse this id only with the same input when retrying')
@@ -139,18 +136,7 @@ def main():
try:
base = server_url(args.url)
token = read_token(args.key_file)
if args.command == 'upload-image':
image = Path(args.file)
image_types = {'.png': 'image/png', '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.webp': 'image/webp'}
image_type = image_types.get(image.suffix.lower())
if not image_type:
raise ValueError('Use a PNG, JPEG or WebP image')
with image.open('rb') as source:
data = source.read(8 * 1024 * 1024 + 1)
if len(data) > 8 * 1024 * 1024:
raise ValueError('Image exceeds 8 MiB')
result = request(base, token, 'POST', '/api/documents/images', data, image_type=image_type)
elif args.command == 'list':
if args.command == 'list':
result = request(base, token, 'GET', '/api/documents?' + urllib.parse.urlencode(
{'limit': args.limit, 'offset': args.offset}))
elif args.command == 'get':